限制对Rails引擎路由的访问...约束不起作用

时间:2011-12-06 18:42:55

标签: ruby-on-rails ruby routing rails-engines

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

Mercury::Engine.routes

我正在尝试限制对引擎提供的URL的访问,因此我尝试使用约束:

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

constraints EditorRestrictor do
  Mercury::Engine.routes
end

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

1 个答案:

答案 0 :(得分:1)

通常你会为你的引擎安装路线:

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