我在我的應用程序中使用兩種不同類型的用戶的設計。他們被稱爲用戶和專業人士。什麼是最類似的方式來構建以下
我現在有一個名爲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
但是這在所有操作中都會很笨重和混亂。我相信肯定有更好的方法。像這樣做的最有效途徑是什麼?我是否應該創建一個全新的控制器來處理基於用戶的消息?