ぱーりー on rails

たまごにひびすらわれてない

deviseでひっかかったところ。

  • クラス継承

deviseのcontrollerって
$rails g devise:controllers

とかで一瞬でできちゃいますよね。
ほんとすごい。

でも、

例えばregistrationscontrollerだったら

class RegistrationsController < Devise::RegistrationsController

Devise::でなんか継承してますよね?
controllerにdeviseフォルダないしこのDeviseなんなんだって
気にはしていましたがまあなんかできてんのか。
みたいなかんじでスルーしていました。

このクラスの正体は。。。
github.com
ここに書いてます。

deviseはgemの中でも特殊で
ここからクラスの継承をしているのです。


よくわからないメソッドもここにすべてがかいています!

resourceとか誰?みたいな
おまえいつ定義された?
してないしどこにもいないぞって。。。
でもdeviseはなんかかってにやってくれるからどっかにあるんだなと思っておこう。。。
みたいなモヤモヤしたかんじで実装をつづけていました。

ぜんぶあの親クラスの
devisecontrollerにいました。



ふたつめ

  • registrationのupdate

ユーザー情報の更新をするところで
ストロングパラメーターに
current_password
を追加するのを忘れていて一生エラーをしてました。


みっつめ

  • letter-opennerとletter-openner-web

ふたつともgemです。

letter-opnerとは!


新規登録のあとメールがおくられず

f:id:mainsytain:20160429183844p:plain

このようなページがひらかれます。

そしてこのConfirm my accountというところをおすことで

ログインすることができます。



続いて


letter-opener-web
とは!


こっちはメールが送信されて、
そのメールのURLを押して入ることで
新規登録が完了してログインができるという。



わたしはこの知識がなかったため
最初はletter-opener-webだけしかgemを入れていなくて
適当なメールアドレスで登録してたし
とどくはずがな!い!!

このことでコントローラーさわってみたりいろいろガチャガチャしてて
なんと無駄な時間をすごしたことか。。。



この二つのgemの使い分けとしては
一つ目のletter-openerのほうが離脱率が低くなるということとかがあるとか。

メールいちいちひらくのめんどくさいですよね。
メールこないしとかなったらイライラしますよね。


でも確認のメールがあったほうが良い場合もあります。
通知メールとかそこらへん。

だからふたつを使い分けてより良いサービスを!!!!

(まとめ方下手かよ


deviseと少し仲良くなれた気がしたGW1日めでした。