Rails 4.2中的单例控制器

时间:2015-05-18 21:56:58

标签: ruby-on-rails ruby-on-rails-4 rails-4-2-1

我想知道如何在Rails 4.2中创建单例控制器。

例如rails g scaffold Dashboard会产生dashboards_controller女巫在我的情况下毫无意义,因为我只需要一个仪表板,所以dashboard_controller就是我需要的东西。

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

所以,问题是,我应该使用-c覆盖控制器名称还是"新的Rails方式"是创建多个控制器名称,如dashboards_controller,然后使用路由器将其指向仪表板URL?

2 个答案:

答案 0 :(得分:2)

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

您的路线将是:

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

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

“Rails Way”默认使用多个控制器名称,但在有意义时使用奇异的控制器名称是很好的 - 在这种情况下他们肯定会这样做。

答案 1 :(得分:0)

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