2010-06-28 16 views
48

He leído this, pero soy nuevo en RoR, así que estoy teniendo problemas para entenderlo. Estoy usando un formulario para crear un nuevo registro de solicitud, y todas las variables que necesito enviar ya existen. Estos son los datos que necesito para enviar (esto es en un bucle do):¿Cómo uso hidden_field en form_for en Ruby on Rails?

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

aquí es mi forma, que funciona hasta ahora, pero sólo envía los valores NULL para todo:

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

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

+0

Sólo probamos <% = f.hidden_field: user_id,: value => w [: calleeID]%> pero acaba de enviar NULL – ben

Respuesta

65

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 %> 

a continuación en el controlador

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

Nota cuando se utiliza

<%= 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 se utiliza

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

cambia a html

<input id="selected" name="selected" type="hidden" value="none"/> 
+0

Esto funcionó muy bien. ¡Gracias por una respuesta tan rápida! – ben

30

Puede enviar un valor personalizado como un campo oculto para su modelo de esa manera:

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