Estoy usando las enumeraciones en Rails 4.1 para realizar un seguimiento de los colores del vino.
Wine.rb
class Wine < ActiveRecord::Base
enum color: [:red, :white, :sparkling]
end
En mi opinión, genero una selección para que el usuario pueda seleccionar un vino con un color determinado.
f.input :color, :as => :select, :collection => Wine.colors
Esto genera el siguiente 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>
Sin embargo, al enviar el formulario, recibo un error de argumento que indica '1' is not a valid color
. Me doy cuenta de que esto se debe a que color
debe ser igual 1
y no "1"
.
¿Hay alguna forma de obligar a Rails a interpretar el color como un número entero en lugar de una cadena?
f.select :color, Wine.colors.to_a.map { |w| [w[0].humanize, w[0]] }
porquew
representaba una matriz. No estoy seguro de por qué, pero tal vez esto ayude a alguien.