我正在做Rails 3.2.3并且有一个问题:
我已经有2个型号的产品和用户。 User表是在我设置devise时创建的。我想让产品属于用户,这就是我所做的:
rails g migration AddUserToProduct user_id:integer
在产品型号中,我添加:
belongs_to :user
在用户模型中,我添加:
has_many :products
我跑了
rake db:migrate
我看起来很好。为了测试它,我进入Web界面,登录并制作新产品然后使用Rails控制台,我输入
Product.last
我很困惑,因为user_id:nil,这意味着用户和产品之间没有参考。
我的代码有什么问题吗?在两个现有模型之间创建参考列的正确方法是什么?
感谢您的帮助
答案 0 :(得分:1)
你能展示你的产品控制器吗?最有可能的是,你有类似
的东西def create
@product = Product.new(params[:product])
...
end
如果是,请将其更改为
def create
@product = current_user.products.build(params[:product])
...
end