我在我的应用程序中使用两种不同类型的用户的设计。他们被称为用户和专业人士。什么是最类似的方式来构建以下
我现在有一个名为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
但是这在所有操作中都会很笨重和混乱。我相信肯定有更好的方法。像这样做的最有效途径是什么?我是否应该创建一个全新的控制器来处理基于用户的消息?