2013-04-24 10 views
6

फ़ोरम, दस्तावेज़ और ब्लॉग सुझावों का प्रयास किया है। वे वाक्यविन्यास पर अभिसरण करते हैं कि मेरे लिए वांछित नियंत्रक के माध्यम से सही ढंग से सहेजना और मार्ग नहीं है।रेल नियंत्रक मार्ग के लिए सिंटेक्स कस्टम नियंत्रक के लिए

बड़ी तस्वीर, मेरे पास दो सॉफ्टवेयर अनुप्रयोग हैं जो कार्यक्षमता साझा करते हैं। साझा कार्यक्षमता को लागू करने के लिए, मेरे पास रेल साझा किए गए :: विजेट उत्पन्न हुए थे। यह एमवीसी बस ठीक काम करता है। मानक साझा/विजेट & आदि रूटिंग का उपयोग करके कोई समस्या देखने, अपडेट करने, बनाने या हटाने में कोई समस्या नहीं है।

फिर, उत्पाद-विशिष्ट कार्यक्षमता के लिए, मैंने दो नियंत्रक बनाए: उत्पाद 1 :: विजेट और उत्पाद 2 :: विजेट। दोनों साझा :: विजेट नियंत्रक से विरासत में हैं। उत्पाद-विशिष्ट लेआउट को छोड़कर दोनों खाली हैं।

यह योजना लगभग काम करती है। जब मैं product1/विजेट्स पर रूट करता हूं, तो यह उत्पाद 1 के लिए लेआउट सेट करता है और साझा/विजेट्स की अनुक्रमणिका विधि को आमंत्रित करता है। नतीजा उत्पाद 1 लेआउट के साथ साझा/विजेट/index.html.erb का प्रदर्शन है। इसी प्रकार, जब मैं product2/widgets पर जाता हूं, तो यह उत्पाद 2 लेआउट सेट करता है और साझा/विजेट्स की अनुक्रमणिका विधि का आह्वान करता है। नतीजा उत्पाद 2 लेआउट के साथ साझा/विजेट/index.html.erb का प्रदर्शन है। उत्तम।

लेकिन अब हम form_for पर पहुंच गए हैं। क्योंकि यह रेल जादू को लागू करता है, यह वास्तव में वास्तव में साझा :: विजेट नियंत्रक को सीधे रूट करना चाहता है। लेकिन यह वही नहीं है जो मैं चाहता हूं। मैं लेआउट सेट करने के लिए उचित उत्पाद नियंत्रक के लिए मार्ग बनाना चाहता हूं। रेल उत्पन्न form_for कुछ इस तरह था:

form_for(@shared_widget, :html => { :class => "form"}) do |f| 

मैंने कोशिश की:

form_for([:product1, @widget], :html => { :class => "form"}) do |f| 

लेकिन यह है कि नाम स्थान (product1_widget_shared_widget_path) डुप्लिकेट।

मैं निम्नलिखित तीन प्रारूपों, जो सभी के लिए सही ढंग से मार्ग लगते हैं की कोशिश की, और रिकॉर्ड बचाने के लिए, लेकिन रिकॉर्ड रिक्त है (स्तंभों खाली कर रहे हैं):

form_for(@widget, url => "product1/widget", :html => { :class => "form"}) do |f| 

form_for(@widget, url => url_for(:controller => "widget"), :html => { :class => "form"}) do |f| 

form_for(@widget, url => url_for(:controller => "widget", :action => "create"), :html => { :class => "form"}) do |f| 

किसी भी मदद की? यदि उपरोक्त कोड में वर्तनी त्रुटियां हैं, तो यह प्रतिलेखन के कारण है। मैंने उपयोग किया गया वास्तविक कोड दुभाषिया पारित किया। धन्यवाद।

उत्तर

2

इस

form_for(url: { controller: "posts", action: "create" }, html => { :class => "form" }, method: "post") do |f| 
कोशिश
संबंधित मुद्दे