1

我有一个用户模型:

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卡在create action就行了

@card=current_user.cards.new(params[:card])

并说unknown attribute: user_id

我已经完成了db:migrate,它仍然无法正常工作。

我必须执行以下操作才能使其正常工作吗?

@card = Card.new(params[:card])
@card.owner_id=current_user.id

还是我错过了什么?

4

1 回答 1

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

于 2012-10-21T10:36:41.233 回答