在这种情况下我需要一个控制器吗?

时间:2011-04-18 15:17:27

标签: ruby-on-rails ruby ruby-on-rails-3

正如我们所做的那样,我有一个用户控制器/模型。

我想添加一个'favorite_car'模型,从数据库中的favorite_cars表中提取他们喜爱的汽车。在models / users.rb中,我有has_many favorite_cars,在模型/ favorite_car.rb中我有belongs_to user

我可以在没有favorite_cars控制器的情况下以这种方式使用和存储数据吗?

2 个答案:

答案 0 :(得分:1)

如果您想从用户创建表单更新“最喜欢的汽车”,请查看accepts_nested_attributes。 (http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html

您的用户模型将“accepted_nested_attributes_for:favorite_car”。在您的视图中,您可以组合用户表单字段和汽车表单字段,并回发给用户控制器。

如果你想在与用户关联之外访问favorite_car模型,它肯定需要自己的控制器。

答案 1 :(得分:0)

通常有一个控制器与您能够创建,读取,更新或销毁的每种类型的模型相关联,因为它非常巧妙地映射到REST方法。

如果您拥有FavoriteCar模型,则应该与FavoriteCarsController关联,以帮助创建这些模型。如果模型本身实际上是UserCar之间的联接,您可以将此作为方法添加到CarsController作为执行相同操作的操作favorite。< / p>