Rails詳細介紹(三)命名約定

2021-08-25 02:09:53 字數 1544 閱讀 3016

rails命名約定。

1. 混合大小寫,下劃線,複數

變數,全部字母都小寫,單詞的中間使用下劃線分割

類(class)和modules:首字母使用大寫。例如:lineitem這樣的類名。

rails使用這樣的命名約定並且作了擴充套件。首先假定資料庫中表名和變數命名一樣,採用全小寫字母,並且單詞中間使用下劃線分割

,並且表明都是複數形式的,例如:orders,third_parties。同時,rails假定檔案的命名也使用小寫和下劃線。

rails根據這些約定自動進行名字的轉換,例如,你的程式裡或許包含乙個model類來操作lineitem,你可以使用rails的命名約定,

把這個類命名為lineitem,根據這個名字,rails會作下面的推斷:

資料庫裡的表名為line_items。

rails的控制器(controller)的命名有另外的約定,如果你的程式裡有乙個store的controller,rails會作下面的推斷:

通常在ruby的**中,我們使用require關鍵字來將一些檔案中的類引入到當前的**中,因為rails知道檔名和類名之間的關係,

所以require關鍵字在rails程式中不是必須的,在你引用乙個不知道名字的類或者module的時候,rails將根據命名約定將類名轉換

成檔名,並且載入這個檔案,效果就象你通過名字引用乙個model,然後這個model自動被載入到程式中。 

就象你所看到的,這個模式在類被儲存到session中時被打破了,在這種情況下我們要明確的宣告他們,例如,我們在控制器

(controller)裡:

model :line_item

在這裡,命名規約還在使用,標記:line_item全部小寫並且用下劃線分開,這會使line_item.rb檔案被載入,而這個檔案中包含有

類lineitem。

2.       把控制器(controller)分組到模組中

(namespace),我們可以選擇將某幾個controller歸組到乙個單獨的命名空間裡。

對此,rails有乙個簡單的約定,如果乙個請求(request)包括了controller的名字,例如:admin/book,rails會在

想像一下我們的程式有這樣的兩組controller,admin/***,content/***,並且兩組裡面都有乙個控制器book,這樣在

有類bookcontroller,如果rails不作額外處理,將會造成衝突。

為了處理這種情況,rails採取的辦法是,在這兩組controller的目錄裡的book_controller.rb檔案中類的宣告前新增控制器所在組

的名字,例如,admin目錄裡的book_controller.rb檔案中的類宣告是這樣:

# ...

end而content目錄下的類宣告是這樣:

# ...

end

這樣,兩個book_controller就可以被區分開了。

在web瀏覽器裡對controller發出請求時,這樣:

在使用rails的命令列生成controller的時候,直接在類名前加上組的名字就可以了,例如:

Rails詳細介紹(十)讀取記錄

讀取記錄包括指定那些特定的資料,你給active record指定標準,active record再返回給你一些物件,其中包含了符合條件的記錄的資料。在乙個表中檢索資料的最簡單的辦法就是指定主鍵,任何乙個model都支援find 方法,該方法支援乙個或多個主鍵值,如果只指定了乙個主鍵,將會返回對應的...

Rails命名約定之 混合大小寫,下劃線和複數

我們經常使用短語來命名變數和類。在ruby裡通常約定變數的名字全是小字母,單詞之間用下劃線隔開。類和模組命名則不同 它們沒有下劃線,短語中採用混合大小寫模式 即每個單詞的第乙個字母以大寫開頭。這些約定會這樣命名變數,比如order status,和類名字如lineitem。rails中採用了這種命名...

php 命名空間詳細介紹,看完就懂

php的命名空間 namespace 是php5.3之後才有的。這個概念在c 中已經很早就有了,php中的namespace其實和c 的概念是一樣的。假設如果不使用namespace,那麼每個類在乙個專案中的名字就必須是固定的。因為php在new的時候不管是呼叫autoload還是呼叫已載入過的類,...