为rails 3中的2个现有模型创建参考列

时间:2012-06-16 18:31:56

标签: ruby ruby-on-rails-3 reference migration

我正在做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,这意味着用户和产品之间没有参考。

我的代码有什么问题吗?在两个现有模型之间创建参考列的正确方法是什么?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你能展示你的产品控制器吗?最有可能的是,你有类似

的东西
def create
  @product = Product.new(params[:product])
  ...
end

如果是,请将其更改为

def create
  @product = current_user.products.build(params[:product])
  ...
end