Ich verwende die Aufzählungen in Rails 4.1, um die Farben des Weins zu verfolgen.
Wine.rb
class Wine < ActiveRecord::Base
enum color: [:red, :white, :sparkling]
end
Aus meiner Sicht generiere ich eine Auswahl, damit der Benutzer einen Wein mit einer bestimmten Farbe auswählen kann
f.input :color, :as => :select, :collection => Wine.colors
Dies generiert den folgenden HTML-Code:
<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>
Beim Absenden des Formulars erhalte ich jedoch einen Argumentationsfehler '1' is not a valid color. Mir ist klar, dass dies daran liegt, dass colores gleich sein muss 1und nicht "1".
Gibt es eine Möglichkeit, Rails zu zwingen, die Farbe als Ganzzahl und nicht als Zeichenfolge zu interpretieren?
f.select :color, Wine.colors.to_a.map { |w| [w[0].humanize, w[0]] }weil eswein Array darstellte. Ich weiß nicht warum, aber vielleicht hilft das jemandem.