我有一个用户模型,在我看来,它有两个显示操作:
- 在用户自己的记录上进行的“表演”(查看他们的私人档案)
- “表演”表演了其他用户记录(查看他们的公开资料)
我已经想到了几种不同的方式来组织和实现这个功能,但我很好奇“Rails 方式”是做什么的。
URL 应该是不同的(domain.com/account 与 domain.com/profile/someuser),这自然导致我希望有多个视图来表示此操作的不同观点。
选项一是创建两个具有不同显示操作和视图的控制器来服务请求。
选项二是将两个动作放在一个控制器中,动作名称本质上是重复的(或强制不重复,例如“show”与“show_public”)。
选项三是使用一个控制器和一个动作,根据一些独特的数据有条件地处理每个请求:调用它的路由,是否填充了 params[:id] 等。
执行此操作的“Rails 方式”是什么?