ActionView :: Template ::错误:参数数量错误(简单表单)

时间:2015-01-08 18:21:24

标签: ruby-on-rails simple-form actionview

我有一个总是有效的Rails 4应用程序,但现在一个带有simple_form_for的页面正在生成错误。我删除了所有代码,只留下了simple_form_for但仍然没有收到错误。

有错误的页面(_form.html.erb):

<%= simple_form_for @anuncio do |f| %>
<%= f.input :titulo %>
<% end %>

当我执行此页面时,出现此错误:

F, [2015-01-08T16:16:21.920151 #19971] FATAL -- : 
ActionView::Template::Error (wrong number of arguments (3 for 2)):
    1: <%= simple_form_for @anuncio do |f| %>
    2: <%= f.input :titulo %>
    3: <% end %>
  config/initializers/simple_form.rb:100:in `block (2 levels) in <top (required)>'
  app/views/anuncios/_form.html.erb:2:in `block in _app_views_anuncios__form_html_erb___4151327912554241759_53270140'
  app/views/anuncios/_form.html.erb:1:in `_app_views_anuncios__form_html_erb___4151327912554241759_53270140'
  app/views/anuncios/new.html.erb:3:in `_app_views_anuncios_new_html_erb___954346116733613916_53199500'

1 个答案:

答案 0 :(得分:4)

我发现了错误。我有一个自定义def来在我的simple_form.rb(config / initializers / simple_form.rb)中呈现我的标签。在“捆绑更新”之后,我的simple_form gem被更新(到3.1.0版本,我的actionview也更新到4.2.0)并且他们更改了传递给我的自定义def的参数,打破了应用程序。

之前(config / initializers / simple_form.rb):

config.label_text = lambda { |label, required| "#{label}" }

<强>修正:

config.label_text = lambda { |label, required, explicit_label| "#{label}" }