'Rails: How do I use hidden_field in a form_for?
I've read this, but I'm new to RoR so I'm having a little trouble understanding it. I'm using a form to create a new request record, and all of the variables that I need to send exist already. Here is the data I need to send (this is in a do loop):
:user_id => w[:requesteeID]
:requesteeName => current_user.name
:requesteeEmail => current_user.email
:info => e
Here's my form, which works so far, but only send NULL values for everything:
<% form_for(:request, :url => requests_path) do |f| %>
<div class="actions">
<%= f.submit e %>
</div>
<% end %>
How do I use hidden_fields to send the data I already have? Thanks for reading.
Solution 1:[1]
You can send a custom value as a hidden input for your model like that:
<%= f.hidden_field :your_model_field_name, value: 12 %>
Where value: 12 is just a demo, but you can pass whatever value you need.
Solution 2:[2]
To elaborate more on Bruno Paulino's answer.
I had this same concern when working on a Rails 6 application.
I had a form for books, but I needed to pass in the current user's id into the form for each book that will be created in a hidden manner.
My initial form field was this way:
<div class="field">
<%= form.label :user_id %>
<%= form.text_field :user_id %>
</div>
I had to modify it to this using this:
<div class="field">
<%= form.hidden_field :model_field_name, value: field_value %>
</div>
So I had this after on:
<div class="field">
<%= form.hidden_field :user_id, value: current_user.id %>
</div>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | halfer |
