2011-04-18 151 views
0

正如我們所做的一樣,我有一個用戶控制器/模型。我需要一個控制器來處理這種情況嗎?

我想添加一個'favorite_car'模型,從數據庫中的favorite_cars表中提取他們最喜歡的汽車。在models/users.rb我有has_many favorite_cars和在models/favorite_car.rb我有belongs_to user

我可以使用和存儲數據這種方式沒有favorite_cars控制器?

+0

同意tadman,如果這是一個單獨的實體,那麼你應該有一個控制器來執行CRUD。 – 2011-04-18 15:24:57

回答

1

如果要從用戶創建表單更新'Favorite Car',請查看accep_nested_attributes。 (http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

然後,您的用戶模型將會「accepted_nested_attributes_for:favorite_car」。在您的視圖中,您可以將用戶表單字段和汽車表單字段組合並回傳給用戶控制器。

如果你想訪問與用戶關聯的favorite_car模型,它肯定會需要它自己的控制器。

0

通常有一個控制器與您可以創建,讀取,更新或銷燬的每種類型的模型相關聯,因爲它非常整齊地映射到REST方法。

如果你有一個FavoriteCar模型,你應該有一個FavoriteCarsController關聯它來幫助創建這些模型。如果模型本身實際上是UserCar之間的連接,則可以將此作爲方法添加到CarsController作爲採取相同操作的動作favorite

+0

有道理,謝謝 - 我希望能夠在用戶創建表單中更新'Favorite Car' - 這是可能的,因爲它們是獨立的模型和表格? – stewart715 2011-04-18 15:23:52

+0

如果User和FavoriteCar之間存在關係,那麼您應該可以使用'nested_attributes'來做到這一點,但這是一個單獨的問題。 – tadman 2011-04-18 21:08:18

相關問題