Rails模型协会无法正常工作?

时间:2015-09-20 10:10:46

标签: ruby-on-rails ruby-on-rails-4 model migration model-associations

感谢这个社区,它已经帮助了我很多。这是我自己发布的第一个问题,它对我的​​项目有点具体。

我从MHartls开始了很棒的rails教程。 有用户和Microposts的模型,我添加了一个汽车模型,每个用户可以有一辆汽车(由car_id引用)。

在控制台中,我可以创建一个用户和一个微博,并通过说明post.user = michael将用户分配给微博,然后将帖子的user_id设置为michaels id。 我正在尝试为汽车做同样的事情,我可以通过说明michael.car = somecar来设置用户car_id,但即使模型关联LOOK完全相同也会出现错误,我甚至将car_id重新设置为用户模型作为参考。见下文:

class User < ActiveRecord::Base
 has_many :microposts, dependent: :destroy
 belongs_to :cars

class Micropost < ActiveRecord::Base
   belongs_to :user
   belongs_to :car

class Car < ActiveRecord::Base
   has_many :microposts, dependent: :destroy
   has_many :users
   accepts_nested_attributes_for :users
   accepts_nested_attributes_for :microposts

以下是我对car_id的最后一次迁移:

class Addreferencecartousers < ActiveRecord::Migration
 def change
    add_reference :users, :car 
    add_foreign_key :users, :cars
 end
end

与我为用户/微博连接所做的一致。

我有点迷失在哪里寻找为什么这不起作用,是否有人对我在这里缺少的东西有任何提示/指示?

1 个答案:

答案 0 :(得分:0)

要解决您的问题,belongs_to :cars模型中的User应为belongs_to :car,但实际上我认为将其称为has_many :cars会更有意义而不是belongs_to :car因为 用户可以拥有多辆汽车 汽车属于用户 < / p>