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