有没有办法通过rails 3中的表单发送额外的参数?
例如:
<%= form_for @post do |f| %>
<%= f.hidden_field :extraparam, :value => "22" %>
<% end %>
但是我们可以说:extraparam不是帖子模型的一部分..
当我尝试这个时,我在控制器的create方法中有一个未知的属性错误,任何想法?
(我想在控制器中使用param值本身来获得一些额外的逻辑)
答案 0 :(得分:29)
直接致电hidden_field_tag
。请参阅:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-hidden_field_tag
这些助手适用于所有主要表单字段类型,并且在您需要超越模型的方法时非常方便。
答案 1 :(得分:3)
以下内容对我来说,将额外的参数从视图传递回控制器,这些参数是我模型的一部分而不属于我的模型。
<%= hidden_field_tag :extraparam, value %>
使用示例
<%= hidden_field_tag :name, "John Smith" %>
答案 2 :(得分:0)
雅保是对的。 Hidden_field与您的模型相关联,而额外的_tag字段则不是。我不确定你的需求但是在RoR社区中通常建议避免传递大量像在php应用程序中那样的hidden_fields。
我已经看到了一些代码,其中id在隐藏字段中传递,如果您了解最佳实践并充分利用框架,则rails会自行处理。当然,我只是说这是一般信息,因为有时候有更好的方法来完成相同的功能。祝你的应用好运。