1

说我有这些路线:

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。

4

1 回答 1

0

我想我已经找到了解决方案......

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

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

希望能帮助到你!

问候

菲利普

于 2013-08-18T14:16:07.753 回答