Rails可安装引擎在动态范围内

说我有这些路线:

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

并在引擎视图中:

  

我明白了

 /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 

但我认为应该有更好的方法,如果我在布局中制作更改区域设置链接怎么办?

  

我不知道这可能是哪个引擎

谢谢你。

我想我找到了解决方案……

只需在application_controller.rb-File中使用url_options方法(参见下面的链接)

请参阅: https : //stackoverflow.com/a/18299975/603126

希望能帮助到你!

问候

菲利普