devise group
Railsでよく使う認証のgem。知らない人いないのでは。
今回ちょっと面倒な感じのログイン仕様でdeviseの中ずっと調べてたんだけど 3.3.0で追加されたらしい機能使ったのでメモ。
複数のモデル(Roleではなく)でログイン出来る作りのとき
[:user, :staff, :admin]
の3モデルあったとしたら
before_action :authenticate_user! before_action :authenticate_staff! before_action :authenticate_admin!
みたいな感じでそれぞれ書いてたと思うんだけど、それを
devise_group :blogger, contains: [:user, :staff, :admin] before_action :authenticate_blogger!
って書けちゃう。楽ちん。
ログインしてるデータを取得するときも、いつものdeviseの感じで
current_blogger
ってやれば取得出来る。
こんな仕様にならない様に作ったほうが良いと思うんだけどねぇ…