我是Ruby on Rails世界的新手。我想使用單數控制器名稱而不是複數。Rails控制檯名稱
這是我想要實現的網址。
這是我嘗試
rails g controller admin::login
當我嘗試訪問
http://foobar.com/admin/login
我得到
uninitialized constant Admin::LoginsController
如何創建奇控制器而不是複數?
我是Ruby on Rails世界的新手。我想使用單數控制器名稱而不是複數。Rails控制檯名稱
這是我想要實現的網址。
這是我嘗試
rails g controller admin::login
當我嘗試訪問
http://foobar.com/admin/login
我得到
uninitialized constant Admin::LoginsController
如何創建奇控制器而不是複數?
每當你違背Rails慣例,你必須問自己的第一件事是你爲什麼這樣做?如果你正在創建一個登錄功能,你應該有一個管理員/用戶控制器和一個會話控制器。您仍然可以使用嵌套資源和自定義路由創建url/admin/login /,但在會話控制器中具有邏輯。
但是如果你真的需要改變這個,出於某種原因,你可以使用這種類型的技術:override default pluralize for model-name in rails3。
你應該首先看rails namespaces。例如:
namespace :admin do
resources :posts, :comments
match 'login' => 'controller#action'
end
它會產生帶有admin
前綴的路由。 所以,如果你想單一的控制器,你應該更深入探索inflectors。檢查以下鏈接:
例如,下面幾行添加到您的config/initializers/inflections.rb
:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable "login"
end
一般而言,您應用戶user
或session
控制器login
行動, 當然。例如,看看devise gem瞭解更多信息和用法。