0

Я делаю приложение, где будет два различных вида продукции - по умолчанию и определенные пользователем. Я пытаюсь связать только UserProducts с пользователем, тогда как DefaultProduct не потребует этого поля. Некоторое время я искал интернет, но не нашел ничего убедительного.рельсы - Inheritanting класс принадлежит к другой модели

Вот попытка я пытался до сих пор:

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 и не знают альтернатив.

Что вообще способ связать другую модель с наследуемой моделью в рельсах?

ответ

2

Все детские модели остаются на родительском столе, поэтому вы должны создать поле user_id в таблице products, а также добавить поле type:string для целей рельсов.

+0

Это сработало. Спасибо! –

Смежные вопросы