在控制器中,我想做:
@options = { :obj_id => @obj.id, :obj2_id => @obj2.id }
在视图中:
<%=
remote_form_for(:model_object, :url => { :action => 'some_action' }) do |f|
@options.each { |k, v|
f.hidden_field(k, { :value => v })
}
}
%>
上面的代码目前只输出每个键/值的字符串值,而不是隐藏的输入字段。
我的经历告诉我,我错过了一些简单的事......我缺少什么?
感谢您的帮助。
答案 0 :(得分:2)
您不需要使用send
,因为hidden_field
不是私有方法,也不是您调用动态的方法。这是您应该使用send
的唯一两个原因。
相反,请让您的表单使用更多ERB标记:
<%= remote_form_for(:model_object, :url => { :action => 'some_action' }) do |f| %>
<% @options.each do |k, v| %>
<%= f.hidden_field(k, { :value => v }) %>
<% end %>
<% end %>
答案 1 :(得分:0)
在我发布问题并更彻底地考虑之后(并且运气好),我找到了object.send函数。以下代码解决了我的问题:
在控制器中:
@options = { :obj_id => @obj.id, :obj2_id => @obj2.id }
在视图中:
<% remote_form_for(:model_object, :url => { :action => 'some_action' }) do |f| %>
<% @options.each { |k, v| %>
<%= f.send :hidden_field, k, { :value => v } %>
<% } %>
}
%>