假设我有这个表单,但已经有一个变量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 %>
答案 0 :(得分:4)
请参阅以下链接hidden_field或hidden_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"/>
所以,我认为你应该使用<%= f.hidden_field :client_id, @client.id %>
希望它对你有用。
答案 1 :(得分:3)
尝试做:
<%= f.hidden_field :client_id, value: @assessment.client_id %>
正如您在上一个问题中所说,您在new
行动中设置了@ assessment.client_id。
答案 2 :(得分:1)
您应该使用:
<%= f.hidden_field :client_id, value: @client.id %>
有些消息来源:
答案 3 :(得分:1)
client_id应该是assessment_params的一部分吗?如果是这样,您可以将其附加到表单对象,即<%= f.hidden_field :client_id, value: @client.id
。
否则我认为你的标签应该通过,只是在评估参数哈希之外。
答案 4 :(得分:1)
<%= f.hidden_field :client_id, :value => @assessment.client_id %>