我在 RAILS 中有一个应用程序,它由一组 API、一个基本网站和一个管理仪表板组成。对于 API 路由,我没有问题,因为它们属于模型和控制器,并且符合 RAILS RESTful 模式(每个模型一个控制器,每个 HTTP 方法一个方法)。
我不习惯为网站编写路由和控制器。主网站在 / 所以默认路由是root :to => "home#index"
,我有网站页面的路由,看起来像
get "home/index"
get "map/index"
get "api/index"
get "cgu/index"
get "legal/index"
我认为这不好,因为我每个视图都有一个控制器,我需要为每个视图定义一个 get。现在对于仪表板,我尝试了一种不同的方法。它在/dashboard,默认路由是 match "dashboard" => "dashboard#index"
,这里有几个页面作为例子
get "dashboard/index"
get "dashboard/users"
get "dashboard/users_stats"
get "dashboard/routes"
get "dashboard/routes_stats"
get "dashboard/charts"
get "dashboard/financial"
所以对于仪表板,我有一个巨大的dashboard_controller,它包含def method
每个仪表板页面。IE:
#dashboard/users
def users
@users = User.all
respond_to do |format|
format.html {render :layout => 'dashboard'}
end
end
仪表板的控制器位于 /controller 但对于视图和资产,我已将其放入 /folder/dashboard/
这里有2个问题:
- 建立主页和仪表板的最佳方式是什么?我应该每页有一个控制器还是一个全局控制器,每页有一个方法?(我觉得很方便,代码更少)。
- 我应该如何组织我的路线以避免为每个页面设置一个获取“某物/某物”?或者我为每个页面定义了一个路由是正常的 RAILS 吗?我还算新。
编辑:为了澄清,仪表板是围绕现有应用程序构建的,其 API 遵循 RESTFul Rails 模式:
resources :users
resources :routes
但是仪表板不绑定到任何现有资源,它只对这些资源进行统计。