Railsでenumで管理しているinteger型のカラムにviewの中でradio_buttonでvalueを送信しようとしたら、errorが起きました。
<%= f.radio_button :sex, 1 %>
models/user.rb
class User < ActiveRecord::Base enum sex: [:female, :male] end
このコードだと値を送信したときにstring型になってしまっているらしく、enumでセットしていない値を送信しようとするとエラーが起きてしまうようです。
enumではハッシュで値を指定しないと、0,1というデフォルト値が設定されます。
そんなときはenum作ったシンボルを指定するとRailsがうまいことやってくれます。
<%= f.radio_button :sex, :female %> <%= f.radio_button :sex, :male %>
わざわざ0とか1とか書かなくていいんですね。
このほうがわかりやすいですね!
参考にしたサイト
[Rails] 固定の値はEnumを使おう | inter-arteq.com :: interaction between art and technology

- 作者: すがわらまさのり,前島真一,近藤宇智朗,橋立友宏
- 出版社/メーカー: 技術評論社
- 発売日: 2014/06/06
- メディア: 大型本
- この商品を含むブログ (8件) を見る
コメントを残す