сказать, что у меня есть эти маршруты:Рельсы монтируемого двигатель под динамической рамки
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 %>
Я не могу знать, какой именно двигатель это может быть
Благодаря Vm.
Вы нашли решение? У меня такая же проблема. – raskhadafi
Решение здесь http://stackoverflow.com/questions/18003626/i18n-routing-to-mounted-engine-ignoring-locale/18150942 –