我正在构建一个页面来管理一组资源,其中一些资源与“效果”记录有关联。我正在尝试这样做,所以我可以让一个表单模板处理资源上效果记录的存在,但是我的条件有问题。
有些记录使用此代码很有效,但有些记录会产生参数不匹配错误。
这是我正在尝试创建的表单的一部分:
<%= 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也比较陌生,所以感谢帮助,谢谢!
答案 0 :(得分:0)
我使用responds_to方法解决了这个问题:
<% if resource.respond_to? :effects %>
<% resource.effects.each do |effect| %>
<hr>
<%= f.inputs :modifier, :name, :value, :for => effect %>
<% end %>
<% end %>