gem 'devise'で名前を実装してみた。
今日は、ちょっと珍しく夕方に更新。
朝から学校の講義は最低限のノートをとって、Rubyのログイン機能の実装をずっとやっていた。
Gemのdeviseを使えば、emailとパスワードの認証が一発で実装されるのは知っていたのだけど、名前の実装ができなかった。
何よりもnameメソッドはありませんと何度も言われてしまってダメだった。
あと、progateの通りにやったらforメソッドもありませんと言われたので、解決策を午前中は模索し、見つけたのでシェアしたいと思う。
'for'メソッドが見つからない。
まず、初めに罠にはまったのは、progateのここ
名前を実装する際にサニタイザーを定義づけする部分。
forが入っているんだけど、これをどうも読み取ってくれない。
ここは、
こうして回避。
.forではなくて、.permitで書き換えてなんとか死なずにすみました。しかし、次で本当にはまった。
:nameがない
次は、deviseのviewファイルの中のregistrationの中のnew.html.erbの中のname
つまりは名前を入力するボックスと記憶を行うところなのだけど、ここの:nameを読み取ってくれない。
add_indexに:nameを書き加えてもだめ。gem 'devise'のバージョンの書き換えも試しましたが、だめの一点張り。
最後は
ここをみて解決。
$ bundle exec rails generate migration add_name_to_users name:string
を打ち込んで、無事に読み取ってくれた。
めでたし。