¿Cómo uso hidden_field en un form_for en Ruby on Rails?

83

He leído esto , pero soy nuevo en RoR, así que tengo problemas para entenderlo. Estoy usando un formulario para crear un nuevo registro de solicitud, y todas las variables que necesito enviar ya existen. Aquí están los datos que necesito enviar (esto es en un bucle do):

:user_id => w[:requesteeID]
:requesteeName => current_user.name
:requesteeEmail => current_user.email
:info => e

Aquí está mi formulario, que funciona hasta ahora, pero solo envía valores NULL para todo:

<% form_for(:request, :url => requests_path) do |f| %>
    <div class="actions">
        <%= f.submit e %>
    </div>
<% end %>

¿Cómo uso hidden_fields para enviar los datos que ya tengo? Gracias por leer.

ben
fuente
Intenté <% = f.hidden_field: user_id,: value => w [: calleeID]%> pero acaba de enviar NULL
ben

Respuestas:

104

Ref hidden_field o 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 %>

luego en el controlador

 params[:selected]="none"
 params[:request][:some_column] = request.some_column

Tenga en cuenta cuando usó

   <%= f.hidden_field :some_column %>

cambia a html

<input type="hidden" id="request_some_column" name="request[some_column]" value="#{@request.some_column}" />

y cuando usaste

<%= hidden_field_tag 'selected', 'none'  %>

cambia a html

   <input id="selected" name="selected" type="hidden" value="none"/>
Salil
fuente
76

Puede enviar un valor personalizado como entrada oculta para su modelo de esa manera:

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

Donde value: 12es solo una demostración, pero puede pasar el valor que necesite.

Bruno Paulino
fuente