2010-06-28 16 views
48

Ho letto this, ma sono nuovo di RoR quindi ho qualche problema a capirlo. Sto utilizzando un modulo per creare un nuovo record di richiesta e tutte le variabili che ho bisogno di inviare esistono già. Ecco i dati che ho bisogno di inviare (questo è in un ciclo do):Come utilizzare hidden_field in un form_for in Ruby on Rails?

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

Ecco la mia forma, che funziona fino ad ora, ma solo inviare valori NULL per tutto:

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

Come fare Uso hidden_fields per inviare i dati che ho già? Grazie per aver letto.

+0

Appena provato <% = f.hidden_field: user_id,: value => w [: calleeID]%> ma ha appena inviato NULL – ben

risposta

65

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

poi controller

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

Nota quando si è usato

<%= f.hidden_field :some_column %> 

cambia in html

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

e quando si è utilizzato

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

cambia in html

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

Questo ha funzionato alla grande. Grazie per una risposta così rapida! – ben

30

È possibile inviare un valore personalizzato come un input nascosto per il vostro modello del genere:

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