Два прицела с одинаковым: как в рельсах - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть несколько рельсов 3 маршрута, которые отлично работали, для управления версиями API с другим модулем:

Rails.application.routes.draw do
  scope module: :v2, constraints: Constraints::ApiVersion.new(versions: [2, 2.1], default: false) do
    scope 'feedback/:id' do
      get 'summary', controller:'summary', action: 'summary', as: 'response_summary'
    end
  end

  scope module: :v1, constraints: Constraints::ApiVersion.new(versions: 1, default: true) do
    scope 'feedback/:id' do
      get 'summary', controller:'summary', action: 'summary', as: 'response_summary'
    end
  end
end

Но теперь в рельсах 5 я получаю эту ошибку:

Неверное имя маршрута, уже используется: 'response_summary' (ArgumentError) Возможно, вы определили два маршрута с одинаковым именем, используя опцию :as, или вы можете переопределить маршрут, уже определенный ресурсом с тем же именем.Что касается последнего, вы можете ограничить маршруты, созданные с помощью resources, как описано здесь: http://guides.rubyonrails.org/routing.html#restricting-the-routes-created

Есть ли способ сохранить :as таким же в Rails 5?

1 Ответ

0 голосов
/ 29 ноября 2018

Если я изменю v1 на другой :as, похоже, что путь остается тем же, на что указал @kasperite.

response_summary     GET   /feedback/:id/summary(.:format)  /v2/summary#summary
response_summary_v1  GET   /feedback/:id/summary(.:format)  /v1/summary#summary

response_summary_path и response_summary_v1_path путь будетто же самое похоже на

2.5.1 :017 > response_summary_v1_path(5)
 => "/feedback/5/summary" 

2.5.1 :018 > response_summary_path(5)
 => "/feedback/5/summary" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...