2013-12-17 9 views
5

के साथ सक्रिय व्यवस्थापक Rails4 कस्टम फ़िल्टर मेरे पास संसाधन ऑर्डर है। मेरे व्यवस्थापक पैनल (activeadmin) में मुझे सभी ऑर्डर प्राप्त करने के लिए एक बूलियन फ़िल्टर की आवश्यकता है जहां उपयोगकर्ता की एक विशिष्ट भूमिका है।Ransack

आदेश कक्षा में मैं इस तरह एक गुंजाइश है:

class Order 
    belongs_to :user 
    scope :client_only_in, -> { joins(:user).where('users.role = ?', 'client') } 
end 

सक्रिय व्यवस्थापक order.rb में मैं पालन फ़िल्टर जोड़ने है:

filter :client_only, as: :check_boxes 
रेल के साथ

3 (metasearch) मैं

search_method :client_only_in, type: :boolean 

फ़िल्टर प्राप्त करने के लिए, लेकिन रेल 4 और रान्सैक के साथ मैं यह नहीं जानता कि यह कैसे करें।

आदेश मॉडल के लिए search_method जोड़ने के बिना मैं त्रुटि

undefined method `client_only_in' for Ransack::Search 

जब मैं सूचकांक व्यवस्थापक आदेश पृष्ठ पर जाएँ मिलता है।

कोई मदद?

उत्तर

3

मैं एक रास्ते से ठीक से पता नहीं ऐसा करने के लिए, लेकिन आप हमेशा एक का चयन क्षेत्र हो सकता है उपयोगकर्ता भूमिकाएं के आधार पर फ़िल्टर करने के लिए:

filter :users_role, as: :select, multiple: true, collection: proc{ User.uniq.pluck :role } 

अद्यतन: आह, एक आदेश belongs_to की तुलना में एक उपयोगकर्ता अगर यह :user_role बजाय :users_role

+0

मैं रेल 4. यहाँ में यह काम नहीं मिल सका होना चाहिए एक समाधान मैंने पाया कि हालांकि काम किया है: http://cavewall.jaguardesignstudio.com/2014/05/01/activeadmin-filters -साथ-लूटना / – smcdrc