복붙노트

[REDIS] ENV 통행하지 않도록 곳 ENV 변수의 잘못된 URI를 넣어 URL 변수를 레디 스 레디 스 (URI하지?) : (URI :: InvalidURIError)

REDIS

ENV 통행하지 않도록 곳 ENV 변수의 잘못된 URI를 넣어 URL 변수를 레디 스 레디 스 (URI하지?) : (URI :: InvalidURIError)

나는 레디 스 아주 새로운 오전. 이 레일 응용 프로그램 설정 / 초기화에 redis.rb 파일이

uri = URI.parse(ENV["REDIS_URL"])
$redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

레디 스 URL은 Heroku가의 설정에 있습니다.

난 그냥에게 Heroku의 설정에서 REDIS_URL와 REDIS_URL을 대체 할 수 없습니다.

나는 URI의 구문 분석 오류를 얻고있다

 bad URI(is not URI?):  (URI::InvalidURIError)

나는 레디 스 URL을 배치해야하는 위치 내 질문은? 어디서부터 ENV 변수를 검색하는?

해결법

  1. ==============================

    1.나는 레이크을 할 때 당신이 얻고 같은데요. 문제는 레이크 - 보내고는, 환경 변수가이 오류에있는 리드 (정보 https://devcenter.heroku.com/articles/rails-asset-pipeline에서), 설정되지 않은 경우이다. 극복하기 위해, 대신 예컨대을 조건부 intializer을 사용합니다 :

    나는 레이크을 할 때 당신이 얻고 같은데요. 문제는 레이크 - 보내고는, 환경 변수가이 오류에있는 리드 (정보 https://devcenter.heroku.com/articles/rails-asset-pipeline에서), 설정되지 않은 경우이다. 극복하기 위해, 대신 예컨대을 조건부 intializer을 사용합니다 :

    if ENV["REDISCLOUD_URL"]
        uri = URI.parse(ENV["REDISCLOUD_URL"])
        $redis = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
    end
    

    추신 대안 Heroku가에 따라이를 사용하지만 참고 :

  2. from https://stackoverflow.com/questions/23247982/redis-looking-for-env-redis-url-variable-not-sure-where-to-put-env-variable-bad by cc-by-sa and MIT license