와인의 색상을 추적하기 위해 Rails 4.1의 열거 형을 사용하고 있습니다.
Wine.rb
class Wine < ActiveRecord::Base
enum color: [:red, :white, :sparkling]
end
내 뷰에서는 사용자가 특정 색상의 와인을 선택할 수 있도록 select를 생성합니다.
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"
.
Rails가 색상을 문자열이 아닌 정수로 해석하도록 강제하는 방법이 있습니까?
f.select :color, Wine.colors.to_a.map { |w| [w[0].humanize, w[0]] }
때문에 그것을 만들어야했습니다w
. 이유는 모르겠지만 아마도 이것이 누군가를 도울 것입니다.