正如我們所做的一樣,我有一個用戶控制器/模型。我需要一個控制器來處理這種情況嗎?
我想添加一個'favorite_car'模型,從數據庫中的favorite_cars表中提取他們最喜歡的汽車。在models/users.rb我有has_many favorite_cars
和在models/favorite_car.rb我有belongs_to user
我可以使用和存儲數據這種方式沒有favorite_cars控制器?
正如我們所做的一樣,我有一個用戶控制器/模型。我需要一個控制器來處理這種情況嗎?
我想添加一個'favorite_car'模型,從數據庫中的favorite_cars表中提取他們最喜歡的汽車。在models/users.rb我有has_many favorite_cars
和在models/favorite_car.rb我有belongs_to user
我可以使用和存儲數據這種方式沒有favorite_cars控制器?
如果要從用戶創建表單更新'Favorite Car',請查看accep_nested_attributes。 (http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html)
然後,您的用戶模型將會「accepted_nested_attributes_for:favorite_car」。在您的視圖中,您可以將用戶表單字段和汽車表單字段組合並回傳給用戶控制器。
如果你想訪問與用戶關聯的favorite_car模型,它肯定會需要它自己的控制器。
通常有一個控制器與您可以創建,讀取,更新或銷燬的每種類型的模型相關聯,因爲它非常整齊地映射到REST方法。
如果你有一個FavoriteCar
模型,你應該有一個FavoriteCarsController
關聯它來幫助創建這些模型。如果模型本身實際上是User
和Car
之間的連接,則可以將此作爲方法添加到CarsController
作爲採取相同操作的動作favorite
。
有道理,謝謝 - 我希望能夠在用戶創建表單中更新'Favorite Car' - 這是可能的,因爲它們是獨立的模型和表格? – stewart715 2011-04-18 15:23:52
如果User和FavoriteCar之間存在關係,那麼您應該可以使用'nested_attributes'來做到這一點,但這是一個單獨的問題。 – tadman 2011-04-18 21:08:18
同意tadman,如果這是一個單獨的實體,那麼你應該有一個控制器來執行CRUD。 – 2011-04-18 15:24:57