है मैं एक description
विशेषता के साथ एक Order
मॉडल है। यदि केवल दो चरणों में से एक को पूरा किया गया है, तो मैं केवल इसकी उपस्थिति को सत्यापित करना चाहता हूं: यदि वर्तमान चरण पहले चरण के बराबर है या यदि आवश्यकता_विधीकरण सत्य के बराबर है।रेल - मान्यता: अगर एक शर्त रेल 5.</p> <p>पर सच
मैं आसानी से एक शर्त इस तरह के आधार पर मान्य कर सकते हैं:
validates :description, presence: true, if: :first_step?
def first_step?
current_step == steps.first
end
लेकिन मुझे यकीन है कि एक और शर्त जोड़ने और मान्य करता है, तो एक या दूसरे से सच है के बारे में जाने के लिए कैसे नहीं हूँ।
कुछ की तरह:
validates :description, presence: true, if: :first_step? || :require_validation
धन्यवाद!
कि एक लैम्ब्डा प्रयास करें नहीं है? एक ब्लॉक होगा: 'मान्य करता है: विवरण, उपस्थिति: सत्य, अगर: {first_step? || requ_validation} ' –
आह, आप सही हैं। मुझे कहना चाहिए था "आप एक लैम्ब्डा पास कर सकते हैं"। –
:) एक ब्लॉक हालांकि काम करता है। रेल इसे इस्तेमाल करने से पहले इसे एक प्रो या लैम्बडा (मैं भूल जाता हूं) में बदल देता हूं। –