RailsでEnumを使ったカラムをデータベースに登録するためのフォームの作り方がわかりません。。
selectでEnumのkeyを選んで、valueを登録させるという手法でやろうとしたのですがうまくいきませんでした。
(デフォルト値で登録されてしまう)
Ruby
1%h2 Registering New User 2 3= form_for @user do |f| 4 5 .field 6 = f.label :username 7 = f.text_field :username 8 .field 9 = f.label :email 10 = f.text_field :email 11 .field 12 = f.label :password 13 = f.password_field :password 14 .field 15 = f.label :usertype 16 = f.select :usertype, [["crew",0], ["staff",0], ["admin",0]] 17 .actions 18 = f.submit 19 20%p 21 or 22 = link_to "login", new_session_path
Ruby
1class User < ApplicationRecord 2 authenticates_with_sorcery! 3 4 enum usertype: { crew: 0, staff: 1, admin:2 } 5end 6
マイグレーションファイル
Ruby
1class AddColumnToUsers < ActiveRecord::Migration[5.1] 2 def change 3 add_column :users, :username, :string, null:false, default: "" 4 add_column :users, :usertype, :integer, null:false, default: 0 5 end 6end 7
他に何かいい方法か、そもそも書き方が間違ってるなど、回答いただければと思います。
よろしくお願いします。
ちなみに
f.select :usertype, [["crew",0], ["staff",0], ["admin",0]]
この部分、usertypeが増えても追記しなくてもいいような書き方って、User.usertypes.keysみたいな取り出し方でうまく表示できなかったので、こちらも何かあれば教えていただければ嬉しいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。