2

我正在尝试提供用户行为。

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable
  has_many :deeds
end

class Deed < ActiveRecord::Base
  belongs_to :user  
end

在 Rails 控制台中,我收到此错误: ActiveRecord::UnknownAttributeError: unknown attribute: user_id

有人可以解释一下这有什么问题。谢谢您的帮助。

4

1 回答 1

2

您需要模型中的一列Deed称为user_id. 当您创建关联时,Rails 将使用契约所属的用户 ID 自动填充该列(例如通过@deed.user = User.first)。

一旦你user_id定义了你的每一个行为,调用类似的东西@user.deeds将允许 Rails 执行一个 SQL 查询,上面写着“给我任何 user_id 等于这个用户 ID 的行为”。同样,当您调用 时@deed.user,Rails 可以发出一条 SQL 查询,上面写着“给我一个 id 等于此契约的 user_id 的用户”。

于 2013-10-23T04:34:22.150 回答