这是一个非常初学的问题,但我搜索过,找不到任何东西。我试图循环一个对象,然后将信息存储在一个数组(或对象?)中,这样我就可以吐出一串项目。
<% @da = [] %>
<% @report.data_items.each do |di| %>
<% if di.status == "Complete" %>
<% @da += di.url_metric.da %> #not sure how to append to the end of the array
<% end %>
<% end %>
帮助?我应该使用数组还是对象?
答案 0 :(得分:1)
由于某种原因,似乎您在ERB模板中执行此操作。别。保持模板清晰简单。在控制器中进行这种计算。
这是一个更好的版本:
@da = @report.data_items.select {|di| di.status == 'Complete'}.
map{|di| di.url_metric.da }
答案 1 :(得分:0)
@da = @report.data_items.collect{|di| di.url_metric.da if di.status == "Complete"}.compact
答案 2 :(得分:-1)
以下是您要完成的内容的缩短:
@da = @report.data_items.select do |item|
item.status == "Complete"
end.map { |item| item.url_metric.da }.join(", ")