rails - 继承类属于另一个模型

时间:2016-04-04 06:01:39

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord rails-activerecord

我正在创建一个应用程序,其中有两种不同的产品 - 默认和用户定义。我试图仅将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中的继承模型相关联的一般方法是什么?

1 个答案:

答案 0 :(得分:2)

所有子模型都保留在父表中,因此您必须在user_id表中生成products字段,并添加type:string字段,以用于轨道目的。