通过rails 3中的表单发送额外参数

时间:2011-05-14 05:50:52

标签: ruby-on-rails ruby ruby-on-rails-3

有没有办法通过rails 3中的表单发送额外的参数?

例如:

<%= form_for @post do |f| %>
<%= f.hidden_field :extraparam, :value => "22" %>
<% end %>

但是我们可以说:extraparam不是帖子模型的一部分..

当我尝试这个时,我在控制器的create方法中有一个未知的属性错误,任何想法?

(我想在控制器中使用param值本身来获得一些额外的逻辑)

3 个答案:

答案 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会自行处理。当然,我只是说这是一般信息,因为有时候有更好的方法来完成相同的功能。祝你的应用好运。