Создайте поле в модели, имеющей разные типы - PullRequest
0 голосов
/ 06 июля 2019

У меня есть предложение модели. Я хочу связать это с вознаграждениями, в том смысле, что вознаграждения могут быть ОДНЫМИ из этих трех типов: Cashback, Discount или Free Product. После выбора вознаграждения должны появиться различные варианты, например, при выборе Cashback, пользователь должен иметь возможность указать его абсолютное или процентное значение, или при выборе бесплатного продукта, пользователь должен выбрать один или несколько продуктов. Как это сделать в рельсах?


Я думал сделать это как отношение один ко многим (см. Код ниже) потому что одна награда может быть добавлена ​​ко многим предложениям, но одно предложение будет иметь только один тип вознаграждения. Но я не уверен, что это правильный подход.

class Offer < AR

 belongs_to :reward

end

class Reward < AR

 has_many :offers

end


Rewards Table 

id
name
type: [:cashback, :discount, :freebie]
...