Практически новичок в Ruby / Rails.
У меня есть видео со многими разделами:
@video = Video.find(params[:id])
@sections=@video.sections;
Я хочу связать атрибут цвета с каждым разделом, но цветрассчитывается в контроллере, а не хранится в базе данных.
До сих пор я просто создавал массив @colours
в моем контроллере, где индекс соответствовал индексу раздела
hues = [41, 6, 189, 117, 279]
saturation = 100;
brightness = 45;
@colours = [];
@sections.each { @colours.push Color::HSL.new(hues[j%hues.length], saturation, brightness) }
, так что @sections[i]
соответствует @colours[i]
.
Это отлично работает, но не кажется лучшим подходом.Я хотел бы расширить мою модель Sections, чтобы она имела атрибут 'color', чтобы я мог получить к нему доступ, выполнив @sections[i].colour
Я попытался поместить это в models / sectiondata.rb:
class SectionData
extend Section
attr_accessor :colour
end
но когда я пытаюсь сделать SectionData.new
в моем контроллере, я получаю сообщение об ошибке, говорящее, что он не может найти класс.Я также не знаю, как заставить исходный @section
быть частью нового класса SectionData.
Как лучше всего решить эту проблему?Буду признателен за любые советы по моему стилю кодирования. Ruby - это большой шаг по сравнению с тем, к чему я привык.