Rails 4.2 中的单例控制器

Singleton controller in Rails 4.2

我想知道如何在 Rails 4.2.

中创建单例控制器

例如 rails g scaffold Dashboard 将生成 dashboards_controller 在我的情况下没有任何意义,因为我只需要一个仪表板,所以 dashboard_controller 是我需要的东西。

我看到有一个选项 -c 来指定控制器名称,但我打赌有类似 --singleton 的东西,但现在已经消失了。

所以,问题是,我应该使用 -c 来覆盖控制器名称,还是 "new Rails way" 是创建多个控制器名称,例如 dashboards_controller 然后使用路由器指向它到仪表板 URL?

我不知道如何使用生成器来完成,但很容易生成复数名称,然后手动将其更改为单数。

您的路线类似于:

resource :dashboard, controller: 'dashboard', :only => ['show']

您的控制器 class 应重命名为 DashboardController,文件名本身应重命名为 dashboard_controller.rb。保存视图文件的视图文件夹也应该是单数的 - app/views/dashboard

"Rails Way" 默认使用复数控制器名称,但在有意义的情况下使用单数控制器名称也没问题 - 在这种情况下他们肯定会这样做。

rails g controller dashboard 好像是你要找的。

$ rails g controller dashboard
      create  app/controllers/dashboard_controller.rb
      invoke  erb
      create    app/views/dashboard
      invoke  test_unit
      create    test/controllers/dashboard_controller_test.rb
      invoke  helper
      create    app/helpers/dashboard_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/dashboard.coffee
      invoke    scss
      create      app/assets/stylesheets/dashboard.scss