我在我的应用程序中为两种不同类型的用户使用设计。他们被称为用户和专业人员。
我目前有一个简单的基于资源的控制器,称为 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
但这对所有操作来说都是庞大而混乱的。我相信一定有更好的方法。这样做最像rails的方式是什么?我应该创建一个全新的控制器来处理基于用户的消息吗?