2012-02-29 4 views
1

私はRailsの初心者ですが、これを理解することはできません。Railsはurl_forで私のURLを正しくマップしていません

(/ EN /ログイン/インデックスから)それは/ EN /ログイン/チェックにマッピングする必要があり

"/assets?action=check&controller=login" 

Rails maps url_for(:controller => 'login', :action => 'check') 

マイ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 

ルーティングについてもう少し詳しくお伝えしますが、どこからアセットが来ているのか、それが正しくマップされていないのは本当に混乱しています。

答えて

3

url_forヘルパーで:localeを指定する必要があります。そうしないと、ルータは実際に一致するものを見つけられません。

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

現在のURL(en/login/check)から延期できませんか? +一致するものが見つからない場合、エラーをスローするようにレールを設定できますか? –

+0

現在のURL?あなたは言葉が英語かドイツ語かを知ることはできないのですか?私はあなたが意味することを理解していません。 – TheDelChop

+0

Mmm、私はそれが疑問だと思っていますが、言語が使われているすべてのurl_for文で指定する必要はないと思います。 –

関連する問題