2010-06-28 3 views
48

मैंने this पढ़ा है, लेकिन मैं RoR के लिए नया हूं इसलिए मुझे इसे समझने में थोड़ा परेशानी हो रही है। मैं एक नया अनुरोध रिकॉर्ड बनाने के लिए एक फॉर्म का उपयोग कर रहा हूं, और सभी चर जो मुझे पहले से मौजूद हैं, मौजूद हैं। यहाँ डेटा मैं भेजने की जरूरत है (यह एक करते पाश में है):रूबी पर रूबी में form_for में hide_field का उपयोग कैसे करूं?

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

यहाँ मेरी रूप है, जो अब तक काम करता है, लेकिन केवल सब कुछ के लिए शून्य मान भेज:

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

कैसे कर मैं पहले से मौजूद डेटा भेजने के लिए hidden_fields का उपयोग करता हूं? पढ़ने के लिए धन्यवाद।

+0

बस की कोशिश की <% = f.hidden_field: user_id,: value => w [: calleeID]%> लेकिन यह अभी NULL – ben

उत्तर

65

रेफरी 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"/> 
+0

भेजा गया यह बहुत अच्छा काम करता है। इस तरह के एक त्वरित जवाब के लिए धन्यवाद! – ben

30

आप इस तरह अपने मॉडल के लिए एक छिपा इनपुट के रूप में एक कस्टम मूल्य भेज सकते हैं बदलने के लिए:

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