2012-12-06 5 views
6

पर आधारित फॉर्म फ़ील्ड छिपाते हैं, मैं एक फॉर्म बना रहा हूं जिसमें कई फ़ील्ड होंगे और उनमें से एक को डिफ़ॉल्ट मान होना चाहिए जो संसाधन बनाये जाने पर दिखाई नहीं दे रहा है। लेकिन अगर इसे संपादित किया जा रहा है तो फ़ील्ड दिखाया जाना चाहिए। तो मैं इस तरह कुछ कोशिश करता हूं:रेल

<%= form_for(@task) do |f| %> 
    <div class="field" id="v_field"> 
    <%= f.label :v_field, "Always visible field." %> 
    <%= f.text_field :status %> 
    </div> 
    <% if params[:action] != "new" %> 
    <div class="field" id="default_field"> 
    <%= f.label :default_field, "Default field (should be invisible for new resources only)." %> 
    <%= f.text_field :status %> 
    </div> 
    <% end 
<% end %> 

लेकिन यह काम नहीं करता है। इसके अलावा मैं इस तरह नियंत्रक सेटिंग में बदलाव करने की कोशिश की है:

format.html { :except => [:default_field] } 

लेकिन यह काम नहीं करता।

कृपया मुझे बताएं, इस शर्त में मुझे किस तुलना का उपयोग करना चाहिए? धन्यवाद।

उत्तर

7

यदि आप सामान्य रेल सम्मेलनों का पालन कर रहे हैं, तो आप इस फॉर्म को या तो new या edit कार्य नियंत्रक में विधियों के माध्यम से प्रदर्शित करेंगे।

नए के लिए, एक नया (खाली) कार्य बनाया गया है, एक मौजूदा डेटाबेस को डेटाबेस से लाया गया है।

एक साधारण परीक्षण तब देखना होगा कि कार्य में id है या नहीं।

<% if @task.id %> 
    ... 
<% end %> 

आप वस्तु अपने कार्यों उपयोगकर्ता वहाँ पहुँचने के लिए ले लिया पर बजाय जोड़ तोड़ की स्थिति को देखकर से बेहतर कर रहे हैं।

+1

सरल, फिर भी प्रतिभा समाधान। आपका बहुत बहुत धन्यवाद। मुझे खुद का अनुमान लगाया जाना चाहिए था.- –