我正在创建一个应用程序,其中有两种不同的产品 - 默认和用户定义。我试图仅将UserProducts与用户关联,而DefaultProduct不需要此字段。我已经在网上看了一段时间,但没有找到任何结论。
这是我迄今为止尝试过的尝试:
class Product < ActiveRecord::Base
validates :name, precence: true, length: { maximum: 100 }
has_many :categories
end
class DefaultProduct < Product
def self.model_name
Product.model_name
end
end
class UserProduct < Product
def self.model_name
Product.model_name
end
belongs_to :user # Causes the console to spew errors
end
我怀疑使用STI是问题的主要原因,但是对Rails来说更新,并且不知道其他选择。
将另一个模型与rails中的继承模型相关联的一般方法是什么?
答案 0 :(得分:2)
所有子模型都保留在父表中,因此您必须在user_id
表中生成products
字段,并添加type:string
字段,以用于轨道目的。