[ruby-on-rails] Ruby on Rails에서 String 클래스를 확장하려면 코드를 어디에 넣어야합니까?

Ruby on Rails에서는 다음과 같은 메서드를 추가해야합니다.

class String
  def capitalize_first
    # ...
  end
end

파일이 어디로 이동해야하는지 궁금하십니까? (어떤 디렉토리와 파일 이름, 필요한 초기화 코드가 있습니까?) 이것은 Rails 3.0.6 프로젝트 용입니다.



답변

나는 항상 core_ext내 디렉토리에 디렉토리를 추가합니다 lib.

사용자 지정 확장을로드하기 위한 이니셜 라이저 를 만듭니다 (예 🙂 config/initializers/core_exts.rb. 그리고 그 안에 다음 줄을 추가하십시오.

Dir[File.join(Rails.root, "lib", "core_ext", "*.rb")].each {|l| require l }

확장 기능은 다음과 같습니다.

lib/core_ext/string.rb

class String
  def capitalize_first
    # ...
  end
end


답변

config / initializers / string.rb에서 할 수 있습니다.

class String
  def capitalize_first
    # ...
  end
end

앱을 다시 시작하는 것 외에 필요한 모든 것입니다.


답변

Rails 3.1의 가이드 라인은 다음과 같습니다.

http://guides.rubyonrails.org/plugins.html#extending-core-classes

기본 규칙을 따르면 초기화 설정을 엉망으로 만들 필요가 없습니다.


답변