Motor montável em trilhos sob um escopo dinâmico

digamos que eu tenho essas rotas:

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

e na visão do motor:

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

eu recebo

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

ao invés de

/de/users/users/new

Eu já incluí no controlador de aplicativo:

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

e funciona bem no aplicativo principal

Eu encontrei uma maneira de obter o URL certo por

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

mas acho que deveria haver uma maneira melhor e se eu estivesse fazendo um link de local de mudança no layout?

<%= link_to locale: :de %>

Eu não posso saber qual mecanismo exato isso poderia ser

Obrigado vm.

questionAnswers(1)

yourAnswerToTheQuestion