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
,因为一个用户可以拥有多辆汽车和一辆汽车属于用户
感谢这个社区,它已经帮助了我很多。这是我必须 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
,因为一个用户可以拥有多辆汽车和一辆汽车属于用户