Рельс-двигатель монтируется под динамический прицел

скажи что у меня есть эти маршруты:

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

и он отлично работает в основном приложении

Я нашел способ получить правильный URL-адрес

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

но я думаю, что должен быть лучший способ, и что, если я делаю ссылку на изменение локали в макете?

<%= link_to locale: :de %>

Я не могу знать, какой именно двигатель это может быть

Спасибо В.М.

Ответы на вопрос(1)

Ваш ответ на вопрос