Rails模型has_many,belongs_to关系

我有2个型号

class User < ActiveRecord::Base has_many :products end class Product < ActiveRecord::Base belongs_to :user end 

我是否需要在Product表中添加一列user_id,或者默认情况下rails是否添加它?

您需要手动将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将知道这是您的外键。