2014-10-30 18 views
0

使用包含嵌套資源的表單時,必須確保表單構建器存在嵌套資源才能正常工作。什麼是確保協會存在嵌套形式的最佳實踐?

我已經看到這種方式在許多方面取得了成功 - 在控制器中構建它們或在視圖中構建它們,但我從未見過一致的方法。

如果一個表單包含嵌套的has_one項目,那麼如果這些項目不存在於模型中,那麼這些項目應該在哪裏構建?

回答

1

一般你是對的。人們無處不在地使問題是 - 這是一個好的做法嗎?它會影響其他開發者嗎?

在我看來,因爲您使用的是MVC模式,所以view是您將如何爲用戶提供某些內容的描述。所以,建設,抓取,創建等是一個控制器的工作。除此之外,您的代碼應該儘可能清楚,以便其他開發人員可以使用。否則它會變得不一致,因爲邏輯被分配在控制器和視圖之間。

在這種情況下,這是該參訪方式:

#model: 
has_one :item 

#controller: 
def new 
    # ... 
    something.build_item if something.item.blank? 
    # ... 
end