5

我的应用程序中有一个 Rails 引擎。routes.rb这是它在我的文件中的钩子:

Mercury::Engine.routes

我试图限制对引擎提供的 URL 的访问,所以我尝试使用约束:

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

constraints EditorRestrictor do
  Mercury::Engine.routes
end

但是引擎的路线仍然可以访问。我重新启动了我的应用程序以防万一,但这没关系。有任何想法吗?

4

1 回答 1

2

通常,您会像这样为引擎安装路线:

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
于 2015-02-21T17:38:08.573 回答