如何在Ruby on Rails的form_for中使用hidden_​​field?


83

我读过这篇文章,但是我对RoR还是陌生的,因此在理解它时遇到了一些麻烦。我正在使用表单创建新的请求记录,并且我需要发送的所有变量已经存在。这是我需要发送的数据(在do循环中):

: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发送已经拥有的数据?谢谢阅读。


只是试图<%= f.hidden_​​field:USER_ID,:值=> W [:calleeID]%>但它只是发送NULL

Answers:


104

引用hidden_​​fieldhidden_​​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 %>

然后在控制器中

 params[:selected]="none"
 params[:request][:some_column] = request.some_column

使用时请注意

   <%= f.hidden_field :some_column %>

它更改为html

<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"/>

76

您可以发送自定义值作为模型的隐藏输入,如下所示:

<%= f.hidden_field :your_model_field_name, value: 12 %>

哪里value: 12只是演示,但您可以传递所需的任何价值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.