如何在each_slice循环中迭代哈希

时间:2013-09-21 12:37:48

标签: ruby-on-rails ruby

在线:

 partial_name = ((not group_data[:partial].nil?) && group_data[:partial]) || "basic_form_render";

我一直收到错误“无法将符号转换为整数”。我想因为我一次传递了group_name和group_data的三个实例,所以我在.times外观中添加了一个变量来跟踪每个交互(0,1,2),比如

partial_name = ((not group_data[times_iterator][:partial].nil?) && group_data[times_iterator][:partial]) || "basic_form_render";

其中迭代器的时间初始化为0,并在每次传递3次循环时递增。但是,我仍然得到同样的错误。

-form_data.each_with_index do |(category_name, cat_data), i|    
        -cat_data.each_slice(3).with_index do |(group_name, group_data), j|
          - counter+=1
          %div{:id => "page#{(counter)}", "data-role" => "page"}
            %h3{:style => "text-align:center;"}
              =category_name
            %hr{:color => "black", :size => "2"}/
            -3.times do 
              -partial_name = ((not group_data[:partial].nil?) && group_data[:partial]) || "basic_form_render";
              = render partial_name, :cat_no => (i+1), :group_no => (j+times_iterator), :group_name => group_name, :group_data => group_data
            =render "shared/form_footer"

1 个答案:

答案 0 :(得分:1)

  

我一直收到错误“无法将符号转换为整数”

当您尝试使用符号或字符串而不是索引访问数组元素时会发生这种情况。

group_data是一个数组,因此group_data[:partial]会抛出错误。