说我有这些路线:
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
但我认为应该有更好的方法,如果我在布局中创建更改区域设置链接怎么办?
<%= link_to locale: :de %>
我不知道这可能是哪个确切的引擎
谢谢vm。