Beperking van de toegang tot de routes van een Rails Engine ... beperkingen werken niet

Ik heb een Rails-engine in mijn app. Hier is de haak in mijn routes.rb bestand:

Mercury::Engine.routes

Ik probeer de toegang tot de URL's van de engine te beperken, dus probeerde ik beperkingen te gebruiken:

class EditorRestrictor
  def self.matches?(request)
    false
  end
end

constraints EditorRestrictor do
  Mercury::Engine.routes
end

Maar de routes van de motor zijn nog steeds toegankelijk. Ik herstartte mijn app voor het geval dat het er niet toe deed. Om het even welke ideeën?

5

1 antwoord

Normaal zou je routes voor je engines op deze manier koppelen:

Rails.application.routes.draw do
    mount Mercury::Engine => '/mercury'

    # If you wanted routes mounted on root
    # mount Mercury::Engine => '/'    
end

Dus als u beperkingen wilt toevoegen, kunt u zeggen:

Rails.application.routes.draw do
    mount Mercury::Engine => '/mercury', constraints: {}
end
1
toegevoegd