मैं जानता हूँ कि रेल में कोई वास्तविक बराबर नहीं है, लेकिन के बराबर मेरे सवाल है ज्यादातर के बारे में सबसे अच्छा अभ्यास ...रेल Django के "विकल्प"
Django में, आप के एक सीमित सेट करने के लिए एक मॉडल के क्षेत्र को सीमित करना चाहते हैं विकल्प, आप कुछ इस तरह (अपने मॉडल में) करना होगा:
COLOR_CHOICES = (('B', 'Blue'), ('R', 'Red'))
item_color = models.CharField(choices=COLOR_CHOICES)
मेरी (मूल) रेल की समझ से, मैं कुछ इसी तरह, उदाहरण के लिए, जोड़ने के साथ काम कर रूपों में एक चयन टैग का उपयोग करके प्राप्त कर सकते हैं/उस मॉडल को संपादित करना ...
मेरा प्रश्न हालांकि है, यह कहां होगा "विकल्प" हैश घोषित करने के लिए उपयुक्त हो (फिर मैं अनुमान लगा रहा हूं कि एक हैश मुझे चाहिए?)। असल में मैं बस इसे किसी भी रूप में आसानी से पुनः उपयोग करने योग्य बनाना चाहता हूं जहां मुझे उन विकल्पों को पेश करने की आवश्यकता हो सकती है, और जब मॉडल स्तर पर सत्यापन करने की बात आती है।
कोई भी मदद/सुझावों की सराहना की जाएगी! कुछ सहायक में
class Coffee < ActiveRecord::Base
@@coffe_size = %w(small medium large)
validates_inclusion_of :size, :in => @@coffe_size,
:message => "%{value} is not a valid size"
def self.coffee_size_options
@@coffe_size.map{ |z| [z,z]}
end
end
और फिर:
class Coffee < ActiveRecord::Base
validates_inclusion_of :size, :in => %w(small medium large),
:message => "%{value} is not a valid size"
end
सहायक पैदा करने के लिए के रूप में, आप की तरह कुछ की कोशिश कर सकते हैं:
क्या आप इस विधि के लिए दस्तावेज़ से लिंक कर सकते हैं? यह बहुत अच्छा लग रहा है लेकिन मेरा google-fu मुझे असफल कर रहा है। – Eric
ओह, मैं देखता हूं, यह एक मणि है, अंतर्निहित विधि नहीं है ... – Eric