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
我想知道如何在 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