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
希望能帮助到你!
问候
菲利普