どこまでやったかを整理する。
deviseをインストール
・モデルを作成
・マイグレーションファイルにカラムを追加
・form_withでf.labelとf.text_fieldにusersテーブルのカラム名を入れてフォームを作成した
・この状態でフォームに入力してもデータベースに保存されない場合のチェックリストです。
- バリデーションの確認:モデルで変な制約をかけていないか確認する。
- migrationファイルの制約:テーブル作成の際に変な制約をかけていないか確認する。
- ストロングパラメーター:deviseはストロングパラメーターが使用できないので、代わりにdevise_parameter_sanitizerを使用します。
- アソシエーション:テーブルを一つしか作成していない状態なら関係ないが、複数テーブルがある場合はhas_many 複数形,blongs_to 単数系、などを確認する。
- passwordのカラム名:deviseでのusersテーブルのカラム(デフォルトではencryped_password)ですが、form_withのパスワードとパスワード再入力では、それぞれカラム名をpassword、password_confimationと記述しないといけません。これはpasswordとpassword_confimationが同じかどうかをチェックし、同じならばencryped_passwordに暗号化した文字列を返すという機能がdeviseに実装されているからです。