如何在Ruby on Rails的form_for中使用hidden_field?
问题描述:
我读过this,但我是RoR的新手,所以我在理解时遇到了一些麻烦。我正在使用表单来创建一个新的请求记录,并且我需要发送的所有变量已经存在。这里是我需要发送的数据(这是一个do循环):如何在Ruby on Rails的form_for中使用hidden_field?
:user_id => w[:requesteeID]
:requesteeName => current_user.name
:requesteeEmail => current_user.email
:info => e
这里是我的形式,其中到目前为止作品,但仅适用于一切发送NULL值:
<% form_for(:request, :url => requests_path) do |f| %>
<div class="actions">
<%= f.submit e %>
</div>
<% end %>
怎么办我使用hidden_fields发送我已有的数据?谢谢阅读。
答
参考hidden_field或hidden_field_tag
<% form_for(:request, :url => requests_path) do |f| %>
<div class="actions">
<%= f.hidden_field :some_column %>
<%= hidden_field_tag 'selected', 'none' %>
<%= f.submit e %>
</div>
<% end %>
然后控制器,当你使用
<%= f.hidden_field :some_column %>
它更改为HTML
params[:selected]="none"
params[:request][:some_column] = request.some_column
注
<input type="hidden" id="request_some_column" name="request[some_column]" value="#{@request.some_column}" />
,当你使用
<%= hidden_field_tag 'selected', 'none' %>
它更改为HTML
<input id="selected" name="selected" type="hidden" value="none"/>
+0
这很好。感谢这样一个快速的答案! – ben 2010-06-28 13:13:59
答
您可以将自定义值作为隐藏输入你的模型像:
<%= f.hidden_field :version, value: 12 %>
刚试过 w [:calleeID]%>但它只是发送NULL – ben 2010-06-28 11:41:38