麻烦渲染与formtastic的关联

时间:2013-02-05 18:33:54

标签: ruby-on-rails ruby formtastic

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

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

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

<%= 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也比较陌生,所以感谢帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

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

<% if resource.respond_to? :effects %>
  <% resource.effects.each do |effect| %>
    <hr>
    <%= f.inputs :modifier, :name, :value, :for => effect %>
  <% end %>
<% end %>