Rails没有正确地将我的url映射到url_for

时间:2012-02-29 15:52:31

标签: ruby-on-rails

我是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

我会阅读更多关于路由的内容,但我真的很困惑/资产来自哪里,以及为什么它没有正确映射。

1 个答案:

答案 0 :(得分:3)

您需要在url_for帮助器中指定:locale,否则路由器实际上不会找到匹配项。

url_for(locale: 'en', controller: 'login', action: 'index')