20
我有2種型號Rails的模型的has_many,belongs_to的關係
class User < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :user
end
我需要一列USER_ID添加到產品表或不導軌默認添加呢?
我有2種型號Rails的模型的has_many,belongs_to的關係
class User < ActiveRecord::Base
has_many :products
end
class Product < ActiveRecord::Base
belongs_to :user
end
我需要一列USER_ID添加到產品表或不導軌默認添加呢?
您確實需要手動將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將知道這是您的外鍵。
嘿,我正在使用'postgresql',並使用您提到的第一種方法創建了模型。使用'user:references'。現在當我嘗試刪除'user'模型對象時,它給了我'PG :: ForeignKeyViolation:'錯誤。我的期望是,當我刪除一個用戶時,應該刪除'user'下的所有'products'。 PS:我在'Product'模型中有'belongs_to:user,dependent :: destroy'。 我是一個初學者在軌道:) – 2017-05-30 10:45:29