Rails模型has_many,belongs_to关系

les*_*sce 23 ruby ruby-on-rails ruby-on-rails-3

我有2个型号

 class User < ActiveRecord::Base
   has_many :products
 end

class Product < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

我是否需要将一个user_id列添加到Product表中,或者rails默认添加它?

And*_*des 51

您需要手动将user_id列添加到Product模型中.如果尚未创建模型,请将列列表中的引用添加到模型生成器.例如:

rails generate model Product name:string price:decimal user:references

或者,如果您的Product模型已经存在,您需要做的是:

rails g migration addUserIdToProducts user_id:integer

这将生成一个正确添加user_id列到products表的迁移.通过正确命名列(user_id),Rails将知道这是您的外键.