0

只是想知道如何动态命名(例如,在循环中)一系列实例变量。像这样的东西:

<% @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]。我只是不确定如何实现这一目标。

干杯!

4

2 回答 2

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 %>

我没有检查任何语法问题,但这应该可以。

于 2012-11-28T03:04:59.750 回答
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 %>
于 2012-11-28T04:13:16.330 回答