Я пытаюсь найти лучший способ настроить мои модели для хранения данных цветовой палитры. Вот как я вижу установку:Correct Rails Дизайн модели ActiveRecord
class Colour < ActiveRecord::Base
has_many :palettes
end
Colour
обладает следующими свойствами:
:hex_value:string
:rgb_value:string
:association_id:integer
:association_type:string
Palette
объект
class Palette < ActiveRecord::Base
has_many :colours
end
Palette
обладает следующими свойствами:
:name:string
:colours: ?
Product
объект
class Product < ActiveRecord::Base
has_one :palette
end
Product
обладает следующими свойствами:
:name:string
:palette_id:integer
Моя проблема, для каждого цвета в палитре есть и процентное значение, что мне нужно, чтобы быть в состоянии хранить. Я не могу найти решение, как сохранить это значение. Я чувствую, что есть способ, которым я могу создать модель палитры, которая имеет много цветов, и для каждого связанного цвета есть определенный процент. Я знаю, что это не правильный путь, чтобы представить его, но я чувствую, что это должно быть что-то вроде
:name:string
:colours: array[:color:object, :percentage:decimal]
Кроме того, я разработал Colour
объект быть полиморфными, как я хочу, чтобы иметь возможность использовать это позже.
Надеюсь, это имеет смысл, это, безусловно, самый передовой дизайн данных, который я сделал до настоящего времени.
Я предполагаю, что вы делаете это приложение как экстерьер, потому что это очень странные классы: D Что вы ищете, хотя есть has_many что-то, через: something_else отношения, они очень хорошо описаны в Rails Guides http : //guides.rubyonrails.org/association_basics.html#the-has-many-through-association –