2013-02-14 25 views
1

說,我有這些路線:下軌動態範圍安裝的發動機

scope '(:locale)', :locale => /en|de/ do 
    mount Users::Engine => "users", as: 'users_engine' 
end 

,並在引擎的觀點:

<%= link_to 'new user', action: :new, controller: :users, locale: :de %> 

我得到

/en/users/users/new?locale=de 

,而不是

/de/users/users/new 

我已經包含在應用控制器:

def set_locale 
    if params.include?('locale') 
    I18n.locale = params[:locale] 
    Rails.application.routes.default_url_options[:locale] = I18n.locale 
    end 
end 

,並在主應用程序

我已經找到一種方法通過

Users::Engine.routes.url_for controller: 'users/users', action: :new, only_path: true, locale: :de 

,但我認爲,以獲得正確的URL工作正常應該有更好的方法,如果我在佈局中創建更改區域設置鏈接?

<%= link_to locale: :de %> 

我不知道它的確切的引擎,這可能是

由於虛擬機。

+1

你找到一個解決方案?我也有同樣的問題。 – raskhadafi 2013-07-17 08:53:56

+0

解決方案在這裏http://stackoverflow.com/questions/18003626/i18n-routing-to-mounted-engine-ignoring-locale/18150942 – 2013-08-19 19:52:44

回答