년도별 글 목록: 2013

레드마인(Redmine) 2.2.0 attachments_storage_path 문제

Ubuntu 12.04 + Ruby 1.8.7 + Rails 3.2 환경에서 Redmine 2.2.0 을 설치했습니다.

레드마인의 환경설정 파일인 configuration.yml 을 열어서 attachments_storage_path 에 첨부파일이 저장될 경로를 넣었습니다.

attachments_storage_path: /첨부파일_저장_경로

그리고 레드마인을 재시작 했지만 attachments_storage_path 에 설정한 값이 적용되지 않았습니다.

레드마인 소스코드를 살펴보니 {Redmine}/app/models/attachment.rb 파일에서 attachments_storage_path 를 부르는 코드에 연산자 우선순위 관련한 버그가 있었습니다.

# 원본 코드
@@storage_path = Redmine::Configuration[‘attachments_storage_path’] || ENV[‘RAILS_VAR’] ? File.join(ENV[‘RAILS_VAR’], “files”) : File.join(Rails.root, “files”)

# 수정 코드
@@storage_path = Redmine::Configuration[‘attachments_storage_path’] || (ENV[‘RAILS_VAR’] ? File.join(ENV[‘RAILS_VAR’], “files”) : File.join(Rails.root, “files”))

이렇게 괄호를 씌워주니까 정상적으로 동작했습니다.

아마 루비 버전의 차이로 위의 코드가 정상으로 돌아가는 루비 버전이 있을 것이라고 생각됩니다.

위와 같은 예상치 못한 버그가 발생하지 않도록 평소 코딩을 할 때 괄호로 잘 묶어주면 가독성도 좋고 버그도 예방할 수 있습니다.