Один из наших ребят опубликовал это сегодня , в котором описано, как вы можете использовать одни и те же маршруты в разных контекстах (в данном случае, если пользователь вошел в систему)
Например, если вы создаетепростой класс для оценки true / false:
class LoggedInConstraint < Struct.new(:value)
def matches?(request)
request.cookies.key?("user_token") == value
end
end
Затем вы можете использовать оценщик в маршрутах, чтобы определить, какие маршруты применяются:
root :to => "static#home", :constraints => LoggedInConstraint.new(false)
root :to => "users#show", :constraints => LoggedInConstraint.new(true)
Очевидно, вы можете спроектировать ограничения для ваших нужд, но Стив описал пару разных вариантов.