Доступ к маршрутам приложения хост-рельсов в смонтированном Sinatra может быть не очень элегантным, поскольку размещенный Sinatra не должен знать о приложении, в котором оно размещено.
Так что вместо этого лучше сделать это в приложении rails.
Если вы используете устройство, вы можете окружить свой блок монтирования следующим образом:
authenticate "user" do
mount App.new, :at => '/path'
end
Это можно сделать, потому что сам devise является промежуточным программным обеспечением, добавленным перед маршрутом.
Разработайте это как:
def authenticate(scope)
constraint = lambda do |request|
request.env["warden"].authenticate!(:scope => scope)
end
constraints(constraint) do
yield
end
end
Если вы не используете devise, вам может потребоваться реализовать нечто подобное.