ruby-on-rails – 限制对Rails引擎路由的访问……约束不起作用

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

Mercury::Engine.routes

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

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

constraints EditorRestrictor do
  Mercury::Engine.routes
end

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

最佳答案
通常你会为你的引擎安装路由,如下所示:

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

转载注明原文:ruby-on-rails – 限制对Rails引擎路由的访问……约束不起作用 - 代码日志