2012-09-27 13 views
6

में स्कोप के सभी सूची प्राप्त कर सकते हैं। मैं उस मॉडल के सभी क्षेत्रों की सूची कैसे प्राप्त कर सकता हूं?मैं कैसे मैं रेल के साथ ActiveRecord उपयोग कर रहा हूँ 3.</p> <p>मैं अपने मॉडल में स्कोप परिभाषित ActiveRecord 3.x

पहले मैं इस्तेमाल कर सकते हैं Model.scopes

या मैं जांच कर सकता है एक गुंजाइश परिभाषित किया गया है या नहीं? कुछ Model.scope_defined?("scope_name")

अग्रिम धन्यवाद।

उत्तर

3

आप अगर एक क्षेत्र या इस तरह

Model.send(:valid_scope_name?, :scope_name) 

यह true वापस आ जाएगी अगर यह nil मौजूद हैं और करता है तो यह नहीं है परिभाषित नहीं है देख सकते हैं।

यदि आप valid_scope_name? के स्रोत कोड की जांच करते हैं, तो आप देखते हैं कि आप इसे respond_to? का उपयोग करके परीक्षण कर सकते हैं और फिर लॉगिंग भाग से बचें।

Model.respond_to?(scope_name, true) 
+0

नहीं। एआर 3.x – Sayuj

+0

में कोई 'स्कोप' विधि नहीं है क्षमा करें हाँ, मैंने अपना जवाब संपादित किया। – oldergod

+1

धन्यवाद! ठीक। लेकिन answer_to? यह जांच नहीं करता कि यह 'स्कोप' या मॉडल की विशेषता है या नहीं। अगर मेरे मॉडल में 'some_attribute' है। यह 'सच' देता है। मैं केवल स्कॉप्स की जांच करना चाहता हूं। आशा है कि आपको मेरी चिंता मिल जाएगी। – Sayuj

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