2012-01-05 8 views
6

मेरे पास ग्राहकों की एक सूची है लेकिन दाएं कॉलम पर फ़िल्टर अनुभाग पर, मुझे चुनिंदा मेनू में #<Customer0X0B500> जैसी सूची मिलती है। मैं इसके बजाय ग्राहक की कंपनी_नाम विशेषता कैसे प्रदर्शित कर सकता हूं?रेल 3 और ActiveAdmin। फ़िल्टर ऑब्जेक्ट्स प्रदर्शित कर रहा है जो कंपनी का नाम नहीं है

+0

क्या आप इस प्रश्न में अधिक कोड जोड़ सकते हैं? – lesce

उत्तर

17

साझा आसान होगा यह पता चल है, धन्यवाद!

filter :customer, :collection => proc {(Customer.all).map{|c| [c.company_name, c.id]}}

+1

पोस्ट करने के लिए धन्यवाद। मेरे पास यह सही सवाल था। – jfedick

+1

मुझे यह फ़ाइल किस फाइल में रखना है? मॉडल – Mexxer

+0

में ऐप/व्यवस्थापक/your_model_name.rb में काम नहीं करता;) – Kulgar

4

मुझे यकीन नहीं है कि मैं आपको समझता हूं लेकिन शायद आपको अपने ग्राहक वर्ग के अंदर to_s विधि को परिभाषित करना चाहिए।

class Customer 

    def to_s 
    self.company_name 
    end 

end 

यह अगर आप कुछ कोड

1

ActiveAdmin प्रदर्शन चयन मेनू ठीक से Model.rb में की कोशिश करने के लिए: -

alias_attribute: नाम,: CATEGORY_NAME

2
class Customer 

    def display_name 
    self.company_name 
    end 

end 

to_s के बजाय display_name परिभाषित काम करता है बेहतर ...

  • to_s स्वचालित रूप से अन्य ओर्ब भी हो सकता है ts।
  • display_name केवल प्रभावित करता ActiveAdmin

तुम भी परिभाषित कर सकते हैं:

show :title => :display_name 

यह आपके company_name कर देगा कंपनी #x के बजाय दृश्य पृष्ठों पर शीर्षक के रूप में दिखाई देते हैं।

+0

एसोसिएशन कॉलम के लिए हम द्वारा निम्नलिखित क्रम में निम्न विधियों को कॉल करने के लिए एक शिक्षित अनुमान बनाते हैं: : display_name,: full_name,: name,: username,: login,: title,: ईमेल,: to_s इसे कॉन्फ़िगर/प्रारंभकर्ता/active_admin.rb में अनुकूलित किया जा सकता है। – barancw

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