2013-07-02 36 views
0

很新的Ruby和Rails,所以它可能是一個愚蠢的問題;)Rails4途徑與範圍和命名空間

我試圖得到一個「國際化」路線與「admin」的命名空間的工作。

所以,我的路由文件看起來像

scope '/:locale' do 
    root 'admin#index', as: :root 
    namespace :admin do 
    resources :foos 
    end 
end 

在我的ApplicationController,我有

before_action :set_locale 

def set_locale 
    I18n.locale = params[:locale] || I18n.default_locale 
end 
def default_url_options(options={}) 
    { locale: I18n.locale } 
end 

如果我 「耙路線」,我得到了以下

root GET /     admin#index 
    GET /:locale(.:format) admin#index 
admin_foos GET /:locale/admin/foos(.:format) admin/foos#index 

而且我可以達到/ en/admin/foos

我面臨的問題是,如果我在視圖中打印路徑(甚至是我的表單的路徑,...),我將得到路徑/ admin/foo?locale = en。而這個網址與該路徑的404

的通話結束是簡單的,例如

<%= link_to 'Back', admin_foos_path %> 

我想我失去了一些東西,但不知道什麼想法。 任何幫助將不勝感激!

問候, 本傑明

+0

奇數。也許發佈一些視圖代碼來生成那些關閉的URL? – GoGoCarl

回答

0

我相信你想:

admin_foos_path :locale => 'en' 
admin_foo_path :id => @foo.id, :locale => 'en' 

等等

如果您生成網址這樣的,應該做的伎倆。