ROR學習筆記 一)

2021-04-15 17:47:43 字數 1923 閱讀 4475

1.執行rails幫助文件

在本地執行乙個8808埠的單獨的web伺服器,裡面包含rails文件

# gem_server

在ie瀏覽器裡輸入 http://localhost:8808即可看到該文件

2.對rails框架的初步理解

(1)rails能給我們提供現成的基本的web架構,就像要造一座房子之前先造好房屋的殼子一樣。

(2)rails框架還給我們提供了一套命令列工具。通過這些工具可以構造出新的rails應用程式。之所以要用這些命令列工具,是因為它可以給我

們建立固定的目錄結構等。固定目錄的好處是,它可以規定程式各部分的位置、功能。

(3)rails中可以開設多個埠以及埠所對應的web伺服器。

3.建立自己的web伺服器

rails預設開發伺服器是webrick,執行

# script/server

指令碼即可建立該伺服器,埠為3000.

4.建立控制器

# ruby script/generate controller mycontroller

直接與瀏覽器對話的是控制器

5.url與控制器的對映

controller部分對應的是控制器

action對應的是行為方法

6.控制器與view模板的關係

(1) 當控制器接受到action請求時,它會去呼叫view模板上的同名檔案action.rhtml

(2) 新建乙個控制器,就會在views目錄下新建乙個同名的資料夾。在該控制器內新建

乙個action,就應在該同名資料夾下新建乙個與該action同名的rhtml檔案。

7.即時更新的特點

rails乙個很大的優點是:它在修改**之後不需要重啟伺服器就可以體現新程式

8.rhtml中嵌入ruby**

在rhtml檔案中,在<% %>之間的**會被看作ruby**來執行。

9.控制器變數與檢視模板的對映關係

檢視模板可以訪問控制器中的任何例項變數,就好像是在訪問自己的例項一樣。

10.測試你的配置

測試rails是否能連線到資料庫、是否有許可權建立表

(1) 進入應用程式的頂層目錄

(2) 在命令列中輸入 rake db:migrate

11.rails的對映規則

模型類叫 aaa,那麼其關聯的表就叫aaas。對映到其複數形式。

12.運算元據庫

用 rake db:migrate 命令可將所有尚未實施的遷移任務都實施到資料庫上。

用 rake db:migrate version=0可使資料庫結構回到過去

使用資料遷移的好處是:它可以記錄每一次對資料庫的操作,並且可以返回到任何步驟。

13.model與資料庫的關係

乙個rails工程對應乙個資料庫,乙個model對應一張資料庫表

14.資料驗證

在model檔案中,可以設定資料庫驗證,如不為空或不能重名等。

15.靜態化scaffold

要想看到並編輯scaffold的**,需執行命令列:

# ruby script/generate scaffold modelname controllername

16.為控制器新增乙個預設action

在建立控制器時,如果後面再新增乙個引數,則表明是為該控制器新增乙個預設的action

17.頁面布局

在layouts目錄下新建乙個與某個控制器同名的rhtml檔案,那麼當請求到該控制器時,頁面會載入該rhtml檔案的布局

18.建立模型類可以用生成器來完成,命令為

# ruby script/generate model modelname

但用生成器來生成的模型類只適用於「需要連線資料庫」的模型類

而建立一般的模型類可以用手動新建乙個rb檔案的方法來做。

ROR學習筆記

1.關於form for的理解 form for book,book,url do f book 決定 name 和 id book 決定 value值 所以在新建model的表單都沒有 book引數 在update和delete的表單裡都帶上 book引數用來顯示 2.關於form.select ...

ROR學習筆記1

在成功的安裝好ror環境後 本人安裝的是instantrails 2.0 win 所做的第一件事,就是要建立乙個最簡單的db demo了,步驟如下 2.建立應用程式框架 rails demo d mysql 表示建立應用程式demo,並使用mysql資料庫做為預設資料庫 此時將生成一堆檔案 3.開啟...

學習ROR隨筆 一

開始學習ror,嘗試著開發乙個小 記錄日常工作中碰到的問題 開發環境 ubuntu12.04,mysql5.5 開發工具 rubymine4.5 問題真是乙個接著乙個啊 一.安裝mysql後,誤操作後提示access denied for user root localhost using pass...