【问题标题】:Rails controller design pattern for My Events我的事件的 Rails 控制器设计模式
【发布时间】:2011-09-23 17:46:54
【问题描述】:

我想要一个 My_Events 页面,它只显示当前用户订阅的事件,并允许用户操作这些事件,此外还有一个显示系统中所有事件的索引页面。

我应该如何做到这一点以符合 RESTful 模式?我应该只创建一个 my_events 操作和 my_event.html.erb,还是为其创建一个新控制器?选择一种方法而不是另一种方法的原因是什么?

谢谢。

【问题讨论】:

  • 没有人回答。我会在当前控制器中开始使用它,并在开始有很多“我的”东西之后移动它。

标签: ruby-on-rails model-view-controller rest design-patterns


【解决方案1】:

如果您碰巧有一个用户控制器,则向其中添加一个事件操作并基于用户为特定于用户的事件进行路由似乎是最 RESTful 的。

# app/controllers/users_controller.rb
class UsersController < ApplicationController
  ...
  def events
    @user = User.find params[:id]
    @events = @user.events
  end
end

# config/routes.rb
resources :users do
  member do
    get 'events'
  end
end

与 /events/my_events 之类的东西相比,这样做的好处是 URL 对于正在呈现的数据是唯一的。如果用户使用链接 /users/fubar/events,那么它将显示用户 fubar 的事件,其中与 /events/my_events 之类的内容一样,生成的页面与会话相关联,而不是 URL。

当然,这实际上取决于您的目标是什么,以及您的应用程序有什么要求。

【讨论】:

  • 感谢您的好方法和详细解释!
【解决方案2】:

您可以在另一个控制器中使用方法来加载这些事件并执行您想要/需要的所有事情。但是如果你想使用索引、编辑、删除和创建新事件,我建议你有一个 events_controller,因为将来添加行和代码行对你来说会更好。

这就是每个模型都有一个控制器,所有东西都有序的意义。

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 2023-03-17
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多