2011-12-06 25 views
5

Tôi có một Rails Engine trong ứng dụng của mình. Dưới đây là móc nó vào tập tin routes.rb tôi:Hạn chế quyền truy cập vào các tuyến đường của Rails Engine ... các ràng buộc không hoạt động

Mercury::Engine.routes 

Tôi đang cố gắng để hạn chế truy cập vào các URL được cung cấp bởi các công cụ vì vậy tôi cố gắng sử dụng những hạn chế:

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

constraints EditorRestrictor do 
    Mercury::Engine.routes 
end 

Nhưng tuyến đường của động cơ vẫn tiếp cận được. Tôi khởi động lại ứng dụng của tôi chỉ trong trường hợp, nhưng nó không quan trọng. Bất kỳ ý tưởng?

Trả lời

1

Thông thường bạn muốn gắn kết các tuyến đường cho động cơ của bạn như thế này:

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

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

Vì vậy, nếu bạn muốn thêm trở ngại, bạn có thể nói:

Rails.application.routes.draw do 
    mount Mercury::Engine => '/mercury', constraints: {} 
end 
Các vấn đề liên quan