मैं शराब के रंगों का ट्रैक रखने के लिए रेल्स 4.1 में एनम का उपयोग कर रहा हूं।
Wine.rb
class Wine < ActiveRecord::Base
enum color: [:red, :white, :sparkling]
end
मेरे विचार में, मैं एक चयन करता हूं ताकि उपयोगकर्ता एक निश्चित रंग के साथ शराब का चयन कर सके
f.input :color, :as => :select, :collection => Wine.colors
यह निम्न HTML उत्पन्न करता है:
<select id="wine_color" name="wine[color]">
<option value=""></option>
<option value="0">red</option>
<option value="1">white</option>
<option value="2">sparkling</option>
</select>
हालाँकि, फॉर्म सबमिट करने पर, मुझे एक तर्क त्रुटि बताते हुए कहा गया है '1' is not a valid color। मुझे इस बात का एहसास है क्योंकि colorसमान होना चाहिए 1और नहीं भी "1"।
वहाँ एक स्ट्रिंग के बजाय एक पूर्णांक के रूप में रंग की व्याख्या करने के लिए रेल को मजबूर करने का एक तरीका है?
f.select :color, Wine.colors.to_a.map { |w| [w[0].humanize, w[0]] }क्योंकिwएक सरणी का प्रतिनिधित्व किया। यकीन नहीं क्यों, लेकिन शायद यह किसी की मदद करेगा।