2010-05-01 2 views
0

config/environment.rb 파일에있는 경우 다음 문장에서 어떻게 후행 문자를 올바르게 제거합니까?Rails 이니셜 라이저에서 상수의 후행 기호를 제거하는 방법은 무엇입니까?

KEY = ENV['KEY'].delete "\r" 

그것은 다음과 같은 오류가 발생합니다 :

undefined method `delete' for nil:NilClass (NoMethodError) 

그것은 IRB에서 잘 작동하지만 Aptana에 스튜디오 3 정지

로드하는 해결 environment.rb에

에. 최신 업데이트 후 bashrc. Mladen과 Mark에게 도움을 청합니다.

+1

오류가 발생하면 'ENV ['KEY ']'가 없음을 나타내며 먼저 확인하십시오. –

+0

흠, rails'environment.rb' 파일의 환경 변수에 접근 할 수 있습니까? – Andrei

+1

제목에 "[해결]"을 넣는 대신 자신의 질문에 답할 수 있습니다 (단, 수락하기 전에 잠시 기다려야합니다). –

답변

4

String#chop은 마지막 문자가 제거 된 문자열의 복사본을 반환합니다. 그리고 그것은 문자열도 마찬가지로 mutate하는 String#chop!을 가지고 있습니다.

그러나 (무기 호에 정의되지 않은 메서드 '삭제'NilClass) 특정 오류가 ENV['KEY']은 물론 delete 메시지에 응답하지 않는 nil을 반환 것을 의미한다. 시도해 볼 수 있습니다

KEY = ENV['KEY'].to_s.delete "\r" 

문자열로 강제 변환 할 수 있습니다. nil.to_s은 빈 문자열을 반환하고 "".delete x은 여전히 ​​""이됩니다. 반면 ENV['KEY'] 일 경우 올바르게 문자열을 반환하면 to_s을 포함하지 않은 경우와 다른 결과가 발생하지 않습니다.

+0

Mark, thanks. 내 질문을 업데이 트했습니다 - 문제는'environment.rb'에만 있습니다 – Andrei

+2

개행 문자 만 제거하는'String # chomp'도 있습니다. –

+1

"\ r"'을 제거하고 \ n "'유지하고 싶었는지 확실하지 않았습니다. 'String # chomp'는 물론 둘 다를 제거합니다. –

관련 문제