Я использую веселье и веселье-I18n.Конфигурация route.rb выглядит следующим образом.
scope "(:locale)", locale: /en|ja/ do
mount Spree::Core::Engine, at: '/marche'
end
Но когда я использую taxon_path, URL получит http://localhost:3000/en/marche/en/t/occasions/vegan-sweets-for-between-meals
.
Как вы могли заметить, локаль дублируется, как / en / marche/en/.
Я хочу сделать это http://localhost:3000/en/marche/t/occasions/vegan-sweets-for-between-meals
.
Я думаю, переопределение actionpack-5.2.2 / lib / action_dispatch / routing / route_set.rb является одним из решений.
def define_url_helper(mod, route, name, opts, route_key, url_strategy)
helper = UrlHelper.create(route, opts, route_key, url_strategy)
mod.module_eval do
define_method(name) do |*args|
last = args.last
options = \
case last
when Hash
args.pop
when ActionController::Parameters
args.pop.to_h
end
helper.call self, args, options # here's where to change
end
end
Но, к сожалению, это может быть немного глупо.Что мне делать в этом случае?