2012-07-05 87 views
1

我是Ruby on Rails世界的新手。我想使用單數控制器名稱而不是複數。Rails控制檯名稱

這是我想要實現的網址。

http://foobar.com/admin/login

這是我嘗試

rails g controller admin::login 

當我嘗試訪問

http://foobar.com/admin/login 

我得到

uninitialized constant Admin::LoginsController 

如何創建奇控制器而不是複數?

回答

1

每當你違背Rails慣例,你必須問自己的第一件事是你爲什麼這樣做?如果你正在創建一個登錄功能,你應該有一個管理員/用戶控制器和一個會話控制器。您仍然可以使用嵌套資源和自定義路由創建url/admin/login /,但在會話控制器中具有邏輯。

但是如果你真的需要改變這個,出於某種原因,你可以使用這種類型的技術:override default pluralize for model-name in rails3

1

你應該首先看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 

一般而言,您應用戶usersession控制器login行動, 當然。例如,看看devise gem瞭解更多信息和用法。