2011-09-06 66 views
0

的Rails 3.0.9路由範圍( 「:區域」)的錯誤

我根據http://guides.rubyonrails.org/i18n.html#setting-the-locale-from-the-url-params

配置的路由,但似乎這些信息沒有滿。我的routes.rb:現場從:

Myapp::Application.routes.draw do 
    scope "(:locale)", :locale => /ru|en/ do 
    resources :pages, :only => [:show] 
    ... 
    end 
    match '/:locale' => 'index#index', :locale => /ru|en/ 
    root :to => 'index#index' 
end 

正如上面通過,路線應該是/ RU/...和/ EN/...所以,我怎麼能拿的價值鏈接文檔說路線? params [:locale]是空的。

謝謝!

+0

我剛剛嘗試過,它的工作原理。嘗試在'application.html.erb'中添加像'locale:<%= params [:locale]%>「
'這樣的東西並嘗試不同的URL。 'http:// your.domain/ru'應該在每個頁面上顯示'locale:「ru」'。你在嘗試什麼網址? – compostus

+0

my.domain/ru,my.domain/en。在這兩個參數[:locale]中都是空的。我不知道爲什麼,谷歌不知道這樣的問題。 – mbashirov

+0

可能是因爲它的作用:O)你必須錯過別的東西,你上面引用的路線是好的。正如khustochka所說,看到你想要訪問'params [:locale]'的地方的代碼,就像控制器一樣,可以幫助你找到問題。 – compostus

回答

0

問題是open_id_authentication插件時,不應爲空。刪除它幫助。

0

對不起,它一定是評論,不是答案,但我沒有評論的權利。

當您訪問,比如http://localhost:8080/http://localhost:8080/ru時,您是否空params[:locale]

當然,打//pages/1時,如果必須是空的,但是打/ru/en/ru/pages/1

+0

它在所有情況下爲空,/,/ en,/ ru /,/ en/pages/o_respublike。我在這裏找不到類似的情況。 – mbashirov

+0

看到完整的路線.rb和控制器代碼可能有助於回答。特別是如果你有一些自定義路由(可以覆蓋稍後的路由,例如,如果你有'match'/:id'=>'pages#show'')或控制器中的一些過濾器 – khustochka