我有一个用户模型:
class User < ActiveRecord::Base
has_many :cards
end
和卡片型号:
class Card< ActiveRecord::Base
belongs_to :user, :foreign_key => "owner_id"
end
卡片模型还有一个名为“owner_id”的属性,我想以这样的方式使用: Card.first.owner将检索拥有该卡的用户
我的问题是,我知道rails会自动连接关联中的id但是没有发生。
在CardController中,rails卡在行
上的创建操作中@card=current_user.cards.new(params[:card])
并说unknown attribute: user_id
我已完成db:migrate
,但仍然无效。
我必须按照以下方式工作吗?
@card = Card.new(params[:card])
@card.owner_id=current_user.id
或者我错过了什么?
答案 0 :(得分:1)
首先,您不需要owner_id列。你所需要的只是
class User
has_many :cards
end
这将为您提供@ user.cards
class Card
belongs_to :owner, :class_name => "User", :foreign_key => "user_id"
end
这会给你@ card.owner