Ограничение доступа к маршрутам Rails Engine ... ограничения не работают - PullRequest
5 голосов
/ 06 декабря 2011

В моем приложении есть Rails Engine. Вот его хук в мой routes.rb файл:

Mercury::Engine.routes

Я пытаюсь ограничить доступ к URL-адресам, предоставленным движком, поэтому я попытался использовать ограничения:

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

constraints EditorRestrictor do
  Mercury::Engine.routes
end

Но маршруты двигателя все еще доступны. Я перезапустил свое приложение на всякий случай, но это не имело значения. Есть идеи?

1 Ответ

1 голос
/ 21 февраля 2015

Обычно вы устанавливаете маршруты для своих двигателей следующим образом:

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

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

Итак, если вы хотите добавить ограничения, вы можете сказать:

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