アプリで2つの異なるタイプのユーザーにdeviseを使用しています。彼らはユーザーとプロフェッショナルと呼ばれます。
私は現在、このような現在の専門家向けのメッセージを引き出す MessagesController と呼ばれる単純なリソースベースのコントローラーを持っています
class MessagesController < ApplicationController
def index
@messages = Message.find_all_by_profession_id(current_professional.id)
end
end
このコントローラーを維持しながら、ログインしているユーザーのタイプに基づいてクエリを変更する最良の方法を見つけたいと考えています。リソース内のすべてのアクション (インデックス、新規作成、作成、更新など) で同じことを行いたいと考えています。
私はこれができることを知っています
if current_user
@messages = Message.find_all_by_user_id(current_user.id)
else
@messages = Message.find_all_by_profession_id(current_professional.id)
end
しかし、これはすべてのアクションでかさばり、面倒です。きっともっと良い方法があるはずです。これを行う最もレールのような方法は何ですか? ユーザーベースのメッセージを処理する完全に新しいコントローラーを作成する必要がありますか?