Как переопределить * _path url helper? - PullRequest
0 голосов
/ 28 сентября 2019

Я использую веселье и веселье-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

Но, к сожалению, это может быть немного глупо.Что мне делать в этом случае?

...