5

के साथ चुने गए किसी भी तरह से: चयनित विकल्प का उपयोग करना संभव है जिसे आप grouped_collection_select फ़ंक्शन के साथ सामान्य चयन दृश्य सहायक पर उपयोग करेंगे? मैं उस मान को सेट करना चाहता हूं जो मेरी सूची में पूर्व-चयनित हो। मैंने पास करने का प्रयास किया है: बिना किसी किस्मत के विकल्प के रूप में चुना गया है!का उपयोग कैसे करें: grouped_collection_select

यहाँ मेरी परीक्षण के कुछ कोड snippts है:

grouped_collection_select 'user[subscription_attributes]', :subscription_plan_id, Trade.order(:name).all, :subscription_plans, :name, :id, :display_name, { :include_blank => true, :selected => 5 } 

grouped_collection_select 'user[subscription_attributes]', :subscription_plan_id, Trade.order(:name).all, :subscription_plans, :name, :id, :display_name, :include_blank => true, :selected => 5 

न तो संस्करण काम करता है। कोई चयनित सेट नहीं है। मैं इसे नेस्टेड मॉडल के लिए मान सेट करने के लिए उपयोग कर रहा हूं। मैं railscasts गतिशील चयन सूची विधियों का उपयोग कर रहा हूं: http://railscasts.com/episodes/88-dynamic-select-menus-revised

मुझे समूह चयन के साथ अच्छी तरह से खेलने के लिए फॉर्मेटास्टिक नहीं मिल सका इसलिए मुझे इसे हाथ से करना था, लेकिन जब उपयोगकर्ता विफल रहता है तो मैं यह मान नहीं रखता सत्यापन। जब मैं सत्यापन त्रुटियों को ठीक करता हूं तो मैं इस सेट को रखना चाहता हूं।

+0

एक बग/सुविधा अभी तक नहीं grouped_collection_select के लिए रेल के लिए जोड़ा जा करने के लिए लगता है भेजने की जरूरत है। स्पष्ट रूप से केवल मास्टर शाखा पर इसके लिए एक फिक्स है। मुझे लगता है कि जावास्क्रिप्ट का उपयोग करने का एकमात्र विकल्प होगा। – Noz

+0

#barancw क्या आपने कभी समझाया कि grouped_collection_select के लिए पूर्व-चयन कैसे करें? Reddirt – Reddirt

उत्तर

9

मैं बस एक ही समस्या में भाग गया और इसे option_groups_from_collection_for_select helper और select सहायक का उपयोग करके हल किया: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html पर।

पहला चरण समूहबद्ध विकल्पों को बनाना है।

<% options = option_groups_from_collection_for_select(Trade.order(:name).all, 
    :subscription_plans, :name, :id, :display_name, 5) %> 

तब मैं की तरह का चयन वस्तु बनाया: अपने उदाहरण लें तो यह की तरह दिखना चाहिए

<%= select('user[subscription_attributes]', :subscription_plan_id, options, 
    include_blank: true) %> 

आप एक पंक्ति में यह सब बाहर लिख सकता है, मैं सिर्फ बाहर विकल्प एक अलग शुरू कर दिया परिवर्तनीय दो अलग-अलग तरीकों को चित्रित करने के लिए।

1

शायद बहुत देर हो चुकी है, लेकिन grouped_collection_select राज्यों के एपीआई दस्तावेज: 'आवृत्ति ऑब्जेक्ट पर कॉलिंग विधि से लौटाया गया मान चुना जाएगा।'

तो, आपको एक निर्दिष्ट विकल्प भी निर्दिष्ट नहीं करना है, क्योंकि रेल स्वचालित रूप से आपकी विशेषता के वर्तमान मूल्य के आधार पर चयन करेंगे। यदि subscription_plan_id के पास मूल्य 5 है, तो यही चुना जाएगा।

यदि यह एक डिफ़ॉल्ट मान माना जाता है, तो आप इसे अपने मॉडल में बाद में आरंभ करने के साथ सेट कर सकते हैं।

0

वास्तव में आप विकल्प उदाहरण के लिए include_blank में

<%= grouped_collection_select :id, model.all, options = {:include_blank => 'Selecione'}%> 
संबंधित मुद्दे