2009-05-21 10 views
19

http://weblog.rubyonrails.org/2009/1/26/nested-model-formsकैसे एक रेल प्रपत्र

इस पोस्ट में कैसे एक रेल के रूप में एक से अधिक मॉडल को संभालने के लिए सीखने में मदद की में एक से अधिक मॉडल को संभालने के लिए। यह तब तक काम करता है जब तक मॉडल घोंसला जाता है। क्या होगा अगर वे नहीं हैं? मान लें, मेरे पास एक फॉर्म है, जहां उपयोगकर्ता व्यक्तिगत विवरण, पता विवरण और उसके हितों को निर्दिष्ट चेकबॉक्स का एक गुच्छा भरता है। इस एक एकल रूप में कम से कम 3 टेबल शामिल हैं, 3 अलग-अलग सहेजे बटनों के बिना इसे संभालने का सबसे अच्छा तरीका क्या है?

उत्तर

25

दो विकल्प:

पहले ActivePresenter जो इस के लिए अच्छी तरह से काम करता है।

<%= form_for @user do |f| %> 

    <%=f.label :name %> 
    <%=f.text_field :name %> 

    <%= fields_for @address do |fa| %> 
     <%=fa.label :city %> 
     <%=fa.text_field :city %> 
    <% end %> 

<% end %> 

फिर नियंत्रक में, रिकॉर्ड को बचाने:

दूसरा सिर्फ fields_for उपयोग करने के लिए है।

@user = User.new(params[:user]) 
@address = Address.new(params[:address]) 

सक्रिय प्रतिनिधि बहुत अच्छा काम करता है।

Google के माध्यम से railsforum post भी मिला, जो अच्छी तरह से काम करेगा।

+0

दूसरा विकल्प (मैं सही अनुमान लगाया गया है चाहिए) मुझे लगता है कि ट्यूटोरियल भर में आया था बहुत स्पष्ट लगता है, लेकिन यह नेस्टेड मॉडल के लिए है हालांकि। एक प्रश्न: क्या होगा यदि मेरे पास एकाधिक पते हों? – user85748

+0

यदि आप कर सकते हैं तो मैं वास्तव में इस से बचने की सलाह देता हूं। यह उपयोगकर्ता को बिल्कुल बहुत प्रसन्न नहीं है। यदि आपको बस जरूरी है, तो पहले इसे देखें: http://blog.new-bamboo.co.uk/2007/8/31/presenters-conductors-on-rails आप फॉर्म सरणी का भी उपयोग कर सकते हैं , लेकिन ऐसा कुछ नहीं है जिसे मैं एक टिप्पणी में समझा सकता हूं, और यह सार है। –

+0

आपके द्वारा कई पते जोड़ने से परहेज करते हैं? जो कि सिर्फ एक उदाहरण था, मैं इसे करने वाला नहीं हूं। लेकिन ऐसे मामले हो सकते हैं जहां इसकी आवश्यकता होगी। उदाहरण के लिए, जब उपयोगकर्ता अपनी रुचियों में प्रवेश कर रहा है (उदाहरण के तौर पर, कुछ भी बेहतर नहीं सोच सकता) प्रत्येक पाठ फ़ील्ड में से प्रत्येक एक। – user85748

0

आप द्वारा इस ट्यूटोरियल उल्लेख कर सकते हैं व्यावहारिक प्रोग्रामर्स

Advanced Rails Recipes

संबंधित मुद्दे