帮助程序的参数数量错误

时间:2010-10-26 18:09:10

标签: ruby-on-rails json

我正在尝试使用此帮助程序从已解析的json(以Hash形式)生成表单

def hash_to_form(hash, fields, legend)
    fields.fields_for do |b|
      concat('<fieldset><legend>', legend, '</legend>')
      hash.each do |key, attr|
        if hash[key].is_a? Hash
          hash_to_form(hash[key], b, key)
        else
          concat("<div class=\"field\">")
          concat(b.label(key, key))
          concat(b.text_field(key, :value => attr))
          concat("</div>")
        end
      end
    end
  end

但是当我尝试调用辅助方法时,它给了我一个错误的参数(0为1)。这没有任何意义,因为它需要3个参数?

1 个答案:

答案 0 :(得分:2)

不是你的帮助者的参数数量错误,而是你的fields_for电话:

fields.fields_for do |b|

此方法采用关联名称。如果用户模型has_many地址,则调用方法如下:

f.fields_for :addresses do |address_fields|

修复此问题应该可以修复帮助程序。