【问题标题】:How to use hidden field tag in rails如何在rails中使用隐藏字段标签
【发布时间】:2017-10-04 12:43:28
【问题描述】:

假设我有这个表单,但已经有一个变量 client_id,我想将它传递给控制器​​。看起来我需要使用 hidden_​​field_tag。我试过了,但我认为我的语法不太正确。知道我做错了什么吗?谢谢

<%= form_for(@assessment) do |f| %>
  <div class="field">
    <%= f.label :weight %><br>
    <%= f.text_field :weight %>
  </div>
  <div class="field">
    <%= f.label :heartrate %><br>
    <%= f.text_field :heartrate %>
  </div>
  <div class="field">
    <%= f.label :bodyfat %><br>
    <%= f.text_field :bodyfat %>
  </div>

    <%= hidden_field_tag :client_id, @client.id %>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

【问题讨论】:

  • 你在哪里设置@client对象?以及如何?

标签: ruby-on-rails ruby


【解决方案1】:

尝试做:

<%= f.hidden_field :client_id, value: @assessment.client_id %>

因为,正如您之前的问题一样,您在 new 操作中设置了 @assessment.client_id。

【讨论】:

    【解决方案2】:

    请参考以下链接hidden_fieldhidden_field_tag

            <%= f.hidden_field :client_id, 1 %>
            <%= hidden_field_tag 'client_id', '1'  %>
    

    使用时注意

       <%= f.hidden_field :client_id, 1 %>
    

    改成html

    <input type="hidden" id="request_client_id" name="request[client_id]" value="1" />
    

    当你使用

    <%= hidden_field_tag 'client_id', '1'  %>
    

    改成html

       <input id="client_id" name="client_id" type="hidden" value="1"/>
    

    所以,我认为你应该在这里使用&lt;%= f.hidden_field :client_id, @client.id %&gt;

    希望它对你有用。

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        &lt;%= f.hidden_field :client_id, :value =&gt; @assessment.client_id %&gt;

        【讨论】:

          【解决方案5】:

          client_id 应该是assessment_params 的一部分吗?如果是这样,您可以将其附加到表单对象,即&lt;%= f.hidden_field :client_id, value: @client.id

          否则我认为你的标签应该通过,就在评估参数哈希之外。

          【讨论】:

            猜你喜欢
            • 2011-07-25
            • 1970-01-01
            • 1970-01-01
            • 2015-06-30
            • 1970-01-01
            • 1970-01-01
            • 2014-02-07
            • 1970-01-01
            • 2015-01-16
            相关资源
            最近更新 更多