2013-04-09 181 views
1

我注意到大多數動作都有相同的名字,這樣更好嗎?有這些名字的清單嗎?RoR命名約定的方法?

例如在控制器,你會看到:

def new 
end 

def create 
end 

def destroy 
end 

etc... 

做這些具體行動抱Ruby on Rails中一個目的是什麼?

謝謝

+0

自動生成的腳手架提供了簡單的CRUD,但是如果你想(或需要)做一些不同的事情,沒有真正的理由不要 – bdares 2013-04-09 07:32:52

回答

3

這些是支持RESTful的七種默認操作。這些是針對CRUD的one-to-one映射。您可以添加您自己的操作方法。

更多信息:Rails routing

0

動作名稱與他們的觀點名關聯。顯示操作提供了顯示視圖,編輯視圖的編輯操作。命名約定允許軌道連接你的視圖,模型,控制器(MVC)。您可以擁有自定義操作名稱,但最好遵循rails CRUD。你甚至不需要所有的行動,有時你可能只需要一個創造和摧毀......或者其他任何東西。例如,你不想將'new'重命名爲你認爲更好的名字...... rails會使用這個動作,並且會尋找一個名爲'new'的動作。

從軌道引導

Active Record supplies a great deal of functionality to your Rails models for free, 
including basic database CRUD (Create, Read, Update, Destroy) operations .... 
3

這些七項行動凝乳操作:指數,新,創建,顯示,編輯,更新和銷燬。有時你需要所有這些,有時候不需要。如果您沒有使用所有這些在任何控制器,那麼你應該刪除多餘的方法

2

Rails約定的規則優於配置適用於這裏:

這些行動也爲寧靜的路線映射有用,因爲很多網站包括基本的crud操作,因此rails可以讓開發人員輕鬆遵循約定並自己擺脫映射路線。

它也取決於您的需要,天氣您想要或不需要,或者您可能需要爲這些CRUD方法使用不同的名稱,在這種情況下,您必須爲每個操作手動指定路由。在這種情況下,你並沒有遵循慣例,因爲通過引入你自己的crud函數並增加你的代碼大小。希望你現在聽起來不錯。