Я относительно новичок в Rails и сейчас создаю демонстрационную доску.
Существуют темы, на которые пользователи могут отвечать.Опубликованное мнение имеет голос: положительный, отрицательный или нейтральный.Они выбраны флажком.
В показе тем - просмотр, вы можете увидеть уже опубликованные мнения.Для каждого мнения должно быть предоставлено изображение большого пальца вверх / вниз / нейтральное.
Сейчас я использую HAML и formtastic для новой формы мнения:
=f.input :vote, :as => :radio, :label => "Your vote", |
:collection => [["positive","/images/Thumbs-up-icon.png"],["negative","/images/Thumbs-down-icon.png"],["neutral","/images/Thumbs-neutral-icon.png"]] |
Важноечасть тематического шоу выглядит следующим образом:
- @opinions.each do |opinion|
[...]
#opinion_vote
= image_tag opinion.vote , {:height=>60}
Как вы можете видеть, я непосредственно сохраняю один из трех image_url каждый раз в базе данных для каждого мнения и напрямую использую их для визуализации изображения в моемпросмотр тем.
Я знаю, что это плохо на многих уровнях, но это единственное рабочее решение, которое я нашел до сих пор.Моя идея состояла в том, чтобы сохранить голоса в виде целых чисел, таких как 1 для положительного, 0 для нейтрального и -1 для отрицательного.Следующим шагом было бы иметь дело в моем представлении темы, чтобы решить, какое изображение должно быть визуализировано.Но логика снова плохая ...
Но как лучше всего найти подходящее место в Rails, чтобы решить, какой образ следует показывать?Контроллер темы?Модель мнения?Помощник?И наконец: как может выглядеть код;)?
Спасибо.