Как добавить в массив var javascript, используя content_for в Ruby on Rails?

Прямо сейчас в моем коде я звоню content_for как...

<% content_for :javascript do -%> <%= "var boxplot_data=#{@survey.boxplot_answers.to_json};" %> <% end -%>

Вместо того, чтобы преобразовывать весь массив за раз, я бы лучше добавил в массив boxplot_data, а затем отобразил бы его как var. Таким образом, я могу сделать мой код более легким для чтения, потому что сейчас, где я использую эти данные в своей части, нет того места, где я генерирую их для добавления в представление.

1 ответ

Решение

Я думаю, что лучшим подходом было бы определить помощника:

def add_to_boxplot(val)
  @boxplot ||= []
  @boxplot << val
end

def json_boxplot
  "var boxplot_data = #{@boxplot.to_json}"
end

Тогда, по вашему мнению, просто используйте add_to_boxplot и в вашем макете вместо yield(:javascript) использование json_boxplot,

Другие вопросы по тегам