我是Ruby on Rails世界的新手。我想使用奇异的控制器名称而不是复数。
这是我想要实现的网址。
这是我尝试的内容
rails g controller admin::login
当我尝试访问
时http://foobar.com/admin/login
我得到了
uninitialized constant Admin::LoginsController
如何创建奇异的控制器而不是复数?
答案 0 :(得分:1)
每当你反对Rails惯例时,你要问自己的第一件事是你为什么这样做?如果要创建登录功能,则应具有管理员/用户控制器和会话控制器。您仍然可以使用嵌套资源和自定义路由创建url / admin / login /,但在会话控制器中具有逻辑。
但如果你真的需要因某种原因改变它,你可以使用这种技术来做到这一点:override default pluralize for model-name in rails3。
答案 1 :(得分:1)
您应首先查看rails namespaces。例如:
namespace :admin do
resources :posts, :comments
match 'login' => 'controller#action'
end
它将生成admin
前缀的路由。
因此,如果你想要单一的控制器,你应该深入了解inflector。请查看以下链接:
例如,将以下行添加到config/initializers/inflections.rb
:
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable "login"
end
通常,您应该使用user
或session
控制器进行login
操作。例如,请查看devise gem以获取更多信息和用法。