Rails 模型关联不起作用?

Rails models association not working?

感谢这个社区,它已经帮助了我很多。这是我必须 post 自己回答的第一个问题,它对我的​​项目来说有些特殊。

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

在控制台中,我可以创建一个用户和一个 micropost,然后通过声明 post.user = michael 将用户分配给 micropost,然后它会设置 post 的 user_id 到 michaels id。 我正在尝试对汽车做同样的事情,我可以通过声明 michael.car = somecar 来设置用户 car_id 但它会给出错误,即使模型关联看起来完全一样,我什至已经重新迁移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

与我为 user/micropost 连接所做的同步。

我有点迷失在其他地方寻找为什么这不起作用,有没有人hints/pointers知道我在这里遗漏了什么?

为了解决您的问题,User 模型中的 belongs_to :cars 应该是 belongs_to :car,但实际上我认为将其称为 [=13 更有意义=]而不是belongs_to :car,因为一个用户可以拥有多辆汽车一辆汽车属于用户