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 に答える