【问题标题】:How to add to a javascript var array using content_for in Ruby on Rails?如何在 Ruby on Rails 中使用 content_for 添加到 javascript var 数组?
【发布时间】:2010-05-17 19:31:29
【问题描述】:
现在在我的代码中,我正在调用 content_for ……
<% content_for :javascript do -%>
<%= "var boxplot_data=#{@survey.boxplot_answers.to_json};" %>
<% end -%>
而不必一次转换整个数组,我宁愿将其添加到数组 boxplot_data 中,然后将其显示为 var。这样我可以使我的代码更易于阅读,因为现在我在部分中使用该数据的位置并不靠近我生成它以添加到视图的位置。
【问题讨论】:
标签:
javascript
ruby-on-rails
content-for
【解决方案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。