我读过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发送我已有的数据?谢谢你的阅读。
答案 0 :(得分:86)
参考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 %>
然后在控制器
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"/>
答案 1 :(得分:54)
您可以将自定义值作为模型的隐藏输入发送:
<%= f.hidden_field :version, value: 12 %>
答案 2 :(得分:1)
我在处理 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>
仅此而已。
我希望这会有所帮助