我是Rails中的新手,但我无法理解这一点。
Rails maps url_for(:controller => 'login', :action => 'check')
到
"/assets?action=check&controller=login"
应该映射到/ en / login / check(来自/ en / login / index)
我的routes.rb:
MyApplication::Application.routes.draw do
scope "(:locale)", :locale => /en|de/ do
resources :login do
get 'index', :on => :member
get 'check', :on => :member
end
end
match ':locale/:controller/:action/:id'
match ':controller/:action/:id'
match ':locale/:controller/:action/:id.:format'
match ':controller/:action/:id.:format'
root :to => 'main#index'
end
我会阅读更多关于路由的内容,但我真的很困惑/资产来自哪里,以及为什么它没有正确映射。
答案 0 :(得分:3)
您需要在url_for帮助器中指定:locale,否则路由器实际上不会找到匹配项。
url_for(locale: 'en', controller: 'login', action: 'index')