railsにあるgemのdeviseについて質問します。
deviseを使用してUserのログイン機能を実装中なのですが
以下のような1対多のようなテーブルの関係を持っていたとします。
1 対 多
Group : User
グループテーブルがあってその中に複数のユーザーが存在するイメージです。
この場合のルーティング作成に
groups/:group_id/users/:user_id
groups/:group_id/users/sign_in
という感じで作成したいのですがなかなか悪戦苦闘しています。
routes
1devise_for :users 2resources :groups do 3 resources :users 4end
聞きたい事が複数ある状況ですが
1つめ
ルーティングを上で書いたような
> groups/:group_id/users/:user_id
> groups/:group_id/users/sign_in
のように作成したいのでアドバイスをいただきたいです。
2つめ
これは設計の話ですがルーティングを
> users/:user_id
> users/sign_in
のようにgroups/:group_idを無くしてセキュリティ面をdeviseに最初に備わっているpasswordとログイン用のIDを設定して
groupのidとユーザーの入っているgroup_idが同じならログイン成功といったようなロジックにする。
(deviseでできたルーティングと切り離せる?)
1の実装が難しければ2の実装をtryしてみようかなと考えています。
実際の運用の話どちらがいいのか...
他に第3の案があればそちらも教えていただきたいです。
補足
Userテーブルにはメールアドレスも保存できるようにしますが
ログイン時にはログイン用のIDとパスワードでログインできるようにしたいです。
以上です。
参考になりそうな記事のURLをいただけるだけでも助かります。
可能なら急ぎで解決したいので
ご協力よろしくお願いします。
あなたの回答
tips
プレビュー