Ruby on rails 两种不同类型的用户希望查看相同的路由,但期望不同的回报

Ruby on rails 两种不同类型的用户希望查看相同的路由,但期望不同的回报,ruby-on-rails,Ruby On Rails,我有两种不同类型的用户希望使用相同的RESTful路由。我在用户和配置文件之间存在多态关联,这两种类型的配置文件是PatientProfile和DoctorProfile。我想做的是为两种用户类型提供一种干净的方法,使它们能够使用相同的控制器操作 class User belongs_to :profile, polymorphic: true class PatientProfile has_one :user, as: :profile class DoctorProfile

我有两种不同类型的用户希望使用相同的RESTful路由。我在用户和配置文件之间存在多态关联,这两种类型的配置文件是
PatientProfile
DoctorProfile
。我想做的是为两种用户类型提供一种干净的方法,使它们能够使用相同的控制器操作

class User
  belongs_to :profile, polymorphic: true

class PatientProfile
  has_one :user, as: :profile

class DoctorProfile
  has_one :user, as: :profile
我有一个
评论
模型

# reviews_controller.rb
def index
  # for patients this would be all reviews they wrote
  # for doctors it would be all reviews about them
  current_user.reviews
end
我已经注意到运行用户的所有内容,而不是配置文件,因为我认为它会更干净。但是现在我认为
current\u user
方法应该真正返回配置文件,而不仅仅是用户。然后,应在各自的概要文件模型中进行所有关联


我的问题:我是以正确的方式思考这个问题,还是我遗漏了什么?我查看了
CanCanCan
Pundit
,但两者似乎都是为了允许特定的操作,而我试图根据请求者返回不同的信息

我觉得这个不错。问题是什么?除了他们的名字以外,这些档案是否完全相同?@Ninigi不完全相同。例如,一个医生有一个:专科医生。患者
有一个:保险
,而医生
有多个:接受保险