2010-11-08 34 views
1

我對Rails(Coldfusion)非常陌生,在開始編碼之前,我想確保理解約定並正確應用它。Rails約定

我的一個值得關注的是使用Rails約定以下情況:

  1. 我創建一個表稱爲用戶
  2. 我創建了一個名爲User.cfc
  3. 我創建了一個名爲Users.cfc控制器模型
  4. 創建一個註冊頁面,所以我將在控制器Users.cfc中添加一個名爲register的方法,因爲它專門與模型User相關。

但現在讓我說我創建了一個方法,調用多個模型,然後我應該把該方法放在哪裏?

例如: 我會帶這個例子的facebook牆貼。對於我的每篇文章,可以添加許多評論。所以我可以創建一個方法名postMessage,所以在那個方法中,我會調用模型「Post」,還有模型「Postcomment」,所以我的問題是我應該把postMessage方法放在控制器「Posts」或「Postcomments」中?

+0

如果你有一個特定的情況下,你可能會得到一些迴應,可能導致你在正確的方向。 – 2010-11-08 22:13:35

回答

0

這真的取決於方法的目的。如果用戶正在查看他的Widget集合,則可以在Users控制器中創建一個「Widgets」方法。另一方面,如果您想列出所有對Widget#32出價的用戶,那麼您可以在Widgets控制器中添加一個「users」方法。

這些類型的東西沒有明確的規則。雖然您通常希望Rails中的模型和控制器之間具有1對1的關聯,但也有例外。您可能有一些沒有自己的控制器的模型(例如Login,EmailAddress)和一些沒有相關模型的控制器(例如Home,Admin)。

+0

那麼從我提供的示例中應該在控制器的帖子中? – Yannick 2010-11-08 23:09:57

+0

如果我們在談論Rails版本1,那麼是的,那可能是一個很好的解決方案。但我認爲你使用的是Rails 2或3,它有一些更好的解決方案。在這種情況下,您將擁有一個Posts控制器和一個「嵌套」評論控制器。閱讀Rails嵌套路線。 http://edgeguides.rubyonrails.org/routing.html#nested-resources – bioneuralnet 2010-11-09 01:38:22