【问题标题】:Rails: How do I use hidden_field in a form_for?Rails:如何在 form_for 中使用 hidden_​​field?
【发布时间】:2011-03-09 02:25:16
【问题描述】:

我已阅读 this,但我是 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 发送我已有的数据?感谢阅读。

【问题讨论】:

  • 刚试过 w[:calleeID] %> 但它只是发送了 NULL

标签: ruby-on-rails forms hidden-field


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以像这样发送自定义值作为模型的隐藏输入:

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

    value: 12 只是一个演示,但你可以传递任何你需要的值。

    【讨论】:

      【解决方案3】:

      详细说明Bruno Paulino's answer

      在使用 Rails 6 应用程序时,我也有同样的担忧。

      我有一个书籍表单,但我需要将当前用户的 id 传递到将以隐藏方式创建的每本书的表单中。

      我最初的表单域是这样的:

      <div class="field">
        <%= form.label :user_id %>
        <%= form.text_field :user_id %>
      </div>
      

      我不得不用这个来修改它:

      <div class="field">
        <%= form.hidden_field :model_field_name, value: field_value %>
      </div>
      

      所以我后来有了这个:

      <div class="field">
        <%= form.hidden_field :user_id, value: current_user.id %>
      </div>
      

      就是这样。

      我希望这会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-05
        • 1970-01-01
        • 2013-08-14
        • 2012-01-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多