Ruby on rails 创建非restful rails页面

Ruby on rails 创建非restful rails页面,ruby-on-rails,ruby-on-rails-3,model-view-controller,Ruby On Rails,Ruby On Rails 3,Model View Controller,我刚刚从使用php mvc框架转向rails,并且一直在阅读指南和railscasts 似乎一切都是基于restful资源的,围绕这些部分创建功能是直观的 非restful/非基于模型的部分稍微不那么直观,或者至少文档中似乎不太涉及 我的web应用程序中有3种类型的用户。当用户登录时,我希望他们显示一个仪表板页面,其中包含一些基本的摘要信息,具体取决于他们是哪种类型的用户 最好的表达方式是什么?我只是创建一个名为Dashboard的新动作控制器来表示这种非基于模型的功能,然后创建我需要的方法,比

我刚刚从使用php mvc框架转向rails,并且一直在阅读指南和railscasts

似乎一切都是基于restful资源的,围绕这些部分创建功能是直观的

非restful/非基于模型的部分稍微不那么直观,或者至少文档中似乎不太涉及

我的web应用程序中有3种类型的用户。当用户登录时,我希望他们显示一个仪表板页面,其中包含一些基本的摘要信息,具体取决于他们是哪种类型的用户

最好的表达方式是什么?我只是创建一个名为Dashboard的新动作控制器来表示这种非基于模型的功能,然后创建我需要的方法,比如show,还是有更好的策略


干杯

是的,您可以创建一个新的仪表板控制器


如果它很可能只是一个显示动作,那么你可以在你的用户控制器中添加一个新的仪表板方法,如果你能平静地思考你的应用程序,那么路径
匹配/users/:id/dashboard“=>“users#dashboard”

Rails会让你的生活变得非常轻松。每当您需要构建新功能时,请考虑用户正在做什么。关注“名词”

  • 您是否正在显示可能已过滤或排序的内容列表:索引
  • 你是不是在展示一件很多东西中的一件?还是只有一个:显示
  • 用户是否需要构建一个新东西?这并不总是意味着保存到数据库。在:new中显示它,并将结果发布到:create
  • 用户正在修改一个东西吗?放置到:更新。在它被修改之前是否有一个视图或页面?使用:编辑
  • 有什么东西被移走了吗:删除
如果这让你感到困惑,不要被:index:show之间的差异所困扰。将您的功能放入:index开始,您将了解是否需要将其移动到:show

还要了解普通RESTful资源和单一资源之间的区别-有时(比如在仪表板的情况下),使用
资源:仪表板
,然后将功能放在
:show
操作中可能更有意义

P>熟悉,记住要考虑非模型的“事物”,即使它们不是模型。

在您的情况下:您有三种类型的用户和一个仪表板。您可以将用户及其角色表示为模型,并将该信息存储在会话(User_id)中。然后,当用户访问
/dashboard
时,他们会看到基于用户和角色对象的自定义视图(在
dashboard#show
中呈现)。

使该视图与
匹配/users/:id/dashboard“=>”users#dashboard“,:as=>:dashboard
,您将免费获得
dashboard_url
帮助程序!