0

我有一个用户模型,在我看来,它有两个显示操作:

  • 在用户自己的记录上进行的“表演”(查看他们的私人档案)
  • “表演”表演了其他用户记录(查看他们的公开资料)

我已经想到了几种不同的方式组织和实现这个功能,但我很好奇“Rails 方式”是做什么的。

URL 应该是不同的(domain.com/account 与 domain.com/profile/someuser),这自然导致我希望有多个视图来表示此操作的不同观点。

选项一是创建两个具有不同显示操作和视图的控制器来服务请求。

选项二是将两个动作放在一个控制器中,动作名称本质上是重复的(或强制不重复,例如“show”与“show_public”)。

选项三是使用一个控制器和一个动作,根据一些独特的数据有条件地处理每个请求:调用它的路由,是否填充了 params[:id] 等。

执行此操作的“Rails 方式”是什么?

4

1 回答 1

1

Default routes, controllermethod 和view任何用户,这里没什么特别的。

对于current_user

  • 选择具有current_user功能的身份验证 gem(例如 authlogic)
  • 添加一个route,例如/me
  • 在用户控制器中,定义一个新方法,例如:me(类似于 show),它总是current_user用来获取 @user
  • me.html.erb显示当前用户特定信息的新视图

希望能帮助到你

于 2011-01-14T04:14:00.407 回答