質問: rails 初心者です。 railsにて、enumの機能を使って、男性女性のフラグや、その他選択肢の制御などを行っています。 ところが、enumで定義したカラムにseedでデータ投入する際に、エラーになってしまい困っています。 どのようにデータ投入すべきなのか、もしくは、enumの使い方が間違えているのか、教えて頂けますでしょうか。 <やりたいこと> 1.enumで選択肢の制御がしたい(→これはできています) 2.データベースに初期データをSeedで投入したい <enumによるカラムの定義> たとえば、単純な話、下記の様に定義していたとします。 # 性別をデータとしては、数値で格納している #0: 男性 #1: 女性 enum sex: {male: 0, female: 1} 上記の `sex` の項目に対して、データとしては、0として、seedデータ(正確にはCSVをseedにて読み込ませています)を記載し、rake db:seed、をすると下記のようなエラーが出ます。 ``` ArgumentError: '0' is not a valid sex ``` 半角が全角になっているのかとか、いろいろ思い当たることは調べたのですが、原因がわからず。 とはいえ、一旦、enumの定義を外して、データ投入した後、再度enumの定義を有効にすると、きちんと、男性、女性と数値データを振分けてくれるので、数値データとして格納されていないわけでもenumの定義方法が間違えているわけでも無さそうなのですが、何が悪いのでしょうか? 助けて頂けるとありがたいです。
回答: CSVでseedデータを読み込む際に、文字列として認識していたことが問題だったようです。 rifuchさん、ご指摘ありがとうございました。 seed側を下記の通りとしたところ、問題なくデータ投入出来ました。 ``` :sex => row[5].to_i, ```