只是想知道如何动态命名(例如,在循环中)一系列实例变量。像这样:
<% @current_issue.articles.each_with_index do |a, i| %>
<% i += 1 %>
<%= f.collection_select("article#{i}", @articles_hash1, :first, :last) %>
<% @articles1.each do |r| %>
<%= link_to(image_tag(r.image.url(:large)), r.image.url(:large), :id => 'article'+i.to_s+'_thumb'+r.id.to_s) %>
<% end %>
<% end %>
而不是@articles_hash1
而是@articles_hash[i]
。我只是不确定如何实现这一点。
干杯!
答案 0 :(得分:0)
<% @current_issue.articles.each_with_index do |a, i| %>
<%= f.collection_select("article#{i}", @articles_hash[i], :first, :last) %>
<% @articles_hash[i].each do |r| %>
<%= link_to(image_tag(r.image.url(:large)), r.image.url(:large), :id => 'article'+i.to_s+'_thumb'+r.id.to_s) %>
<% end %>
<% end %>
我没有检查任何语法问题,但这应该做。
答案 1 :(得分:0)
对于任何挣扎于此的人,请帮自己一个忙,并建立一个有问题的实例变量数组,即:
@articles = (1..3).to_a.map { |i| Article.all_articles(i).reverse }
然后遍历该数组,即:
<% @articles.each_with_index do |a, i| %>
<% i += 1 %>
<%= f.collection_select("article#{i}", @articles[i-1], :id, :name) %>
<% end %>