在Rails 3.2应用程序中,我使用带有path_prefix
的Devise和带有范围路径的本地化。
#routes.rb
MyApp::Application.routes.draw do
scope "(:locale)", locale: /#{I18n.available_locales.join("|")}/ do
devise_for :admins,
path_prefix: 'administration',
end
...other resources
end
end
虽然我的所有其他资源的网址都是正确编写的,例如地址栏中的/en/resource/1
,但设计路径会将区域设置作为参数传递/administration/admins/registrations/login?locale=en
如何鼓励Devise使用格式/locale/path_prefix/route
?
答案 0 :(得分:1)
第一行应该用第二行替换。
devise_for :admins, :path_prefix => "administration"
devise_for :admins, :path => "administration/admins"
所以在你的例子中,它将是:
#routes.rb
MyApp::Application.routes.draw do
scope "(:locale)", locale: /#{I18n.available_locales.join("|")}/ do
devise_for :admins, :path => "administration/admins"
...other resources
end
end
有关devise_for的更多信息,请查看以下链接:http://rubydoc.info/github/plataformatec/devise/master/ActionDispatch/Routing/Mapper#devise_for-instance_method