Как добавить в массив 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
,