我正在努力为用户提供帮助。
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属性:user_id
有人可以解释一下这有什么问题。谢谢你的帮助。
答案 0 :(得分:2)
您需要名为Deed
的{{1}}模型中的列。当您创建关联时,Rails会自动使用契约所属用户的ID填充该列(例如,通过user_id
)。
为每个行为定义@deed.user = User.first
后,调用user_id
之类的内容将允许Rails执行一个SQL查询,该查询说“给我任何user_id等于此用户ID的行为”。同样,当你调用@user.deeds
时,Rails可以发出一个SQL查询,上面写着“给我一个id等于这个deed的user_id的用户”。