0

我正在构建一个页面来管理一组资源,其中一些资源与“效果”记录有关联。我正在尝试这样做,以便我可以让一个表单模板处理资源上效果记录的存在,但我的条件遇到了一些问题。

某些记录使用此代码效果很好,但某些记录会产生参数不匹配错误。

这是我正在尝试创建的表单的部分内容:

<%= semantic_form_for [ :manage, resource ], :html => {:class => 'default-manage-form' } do |f| %>
  <%= f.inputs do %>

    <% attributes.each do |attr| %>
      <%= f.input attr.to_sym %>
    <% end %>

    <% if resource.effects != nil && !resource.effects.empty? %>
      <%= f.inputs :modifier, :name, :value, :for => resource.effects, :name => "Effects" %>
    <% end %>

    <%= f.actions do %>

      <%= f.action :submit %>
    <% end %>
  <% end %>
<% end %>

有些记录(但不是全部)会在我创建效果输入的地方产生此错误:

wrong number of arguments (4 for 3)

我怎样才能更正这里的代码,以免崩溃?我对 Rails 也比较陌生,因此感谢您的帮助,谢谢!

4

1 回答 1

0

我通过使用 responds_to 方法解决了这个问题:

<% if resource.respond_to? :effects %>
  <% resource.effects.each do |effect| %>
    <hr>
    <%= f.inputs :modifier, :name, :value, :for => effect %>
  <% end %>
<% end %>
于 2013-02-05T19:06:28.733 回答