Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails:动态命名实例变量_Ruby On Rails 3_Loops - Fatal编程技术网

Ruby on rails 3 Rails:动态命名实例变量

Ruby on rails 3 Rails:动态命名实例变量,ruby-on-rails-3,loops,Ruby On Rails 3,Loops,只是想知道如何动态命名(比如在循环中)一系列实例变量。大概是这样的: <% @current_issue.articles.each_with_index do |a, i| %> <% i += 1 %> <%= f.collection_select("article#{i}", @articles_hash1, :first, :last) %> <% @articles1.each do |r| %> <%= li

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

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

“物品”+i.to_s+“U拇指”+r.id.to_s)%>
这里不是
@articles\u hash 1
,而是
@articles\u hash[i]
。我只是不知道如何才能做到这一点

干杯


<% @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 %>
“物品”+i.to_s+“U拇指”+r.id.to_s)%>

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

对于有困难的人,请帮自己一个忙,构建一个有问题的实例变量数组,即:

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


是的,我试过了。它向我抛出了以下错误:
未定义nil:NilClass的方法“[]”。我的错误@文章散列必须首先存在。您是如何访问它的?它是:我让控制器生成
@articles\u hash1
@articles\u hash2
,和
@articles\u hash3
。当我运行我发布的原始代码时,它工作正常(但显然不正确)。那么
@articles\u hash 1
是散列吗?是的,我不是在一个名为
@articles\u hash
的散列中访问键和值,我是在访问上面提到的三个不同的散列。对不起,我应该说得更清楚些。