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
class Application < Rails::Application ... config.autoload_paths += Dir[File.join(Rails.root, "lib", "core_ext", "*.rb")].each {|l| require l } ...
lib/core_ext/string.rb포함하는 것을 잊지 마십시오 require 'core_ext/string'.
lib디렉토리는 디렉토리 안에 있으면 안됩니다 app.
Rails 3.1의 가이드 라인은 다음과 같습니다.
http://guides.rubyonrails.org/plugins.html#extending-core-classes
기본 규칙을 따르면 초기화 설정을 엉망으로 만들 필요가 없습니다.
String클래스를 확장해야 할까요 아니면 헬퍼 메소드를 뷰에서 사용해야할까요? 이 헬퍼 경우하지만, 다음은 컨트롤러 (모델)에서 작동하는 것도 골칫거리이며, 그것은 같은 체인 수 없습니다s.capitalize_first.truncate(30)