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 %>
我不知道它的確切的引擎,這可能是
由於虛擬機。
你找到一個解決方案?我也有同樣的問題。 – raskhadafi 2013-07-17 08:53:56
解決方案在這裏http://stackoverflow.com/questions/18003626/i18n-routing-to-mounted-engine-ignoring-locale/18150942 – 2013-08-19 19:52:44