내가 간단한 검증이 :이 코드에레일 : 내 모델에서 "number_with_delimiter"메서드가 인식되지 않는 이유는 무엇입니까?
class Product < ActiveRecord::Base
# include ActionView::Helpers::NumberHelper
...
validates_numericality_of :price, :less_than => 1000000,
:message => "must be less than #{number_with_delimiter(1000000)}"
...
end
을, 나는 다음과 같은 오류가 발생했습니다 :
undefined method `number_with_delimiter' for #<Class:0x2665a58>
나는 추가하려고 :
include ActionView::Helpers::NumberHelper
을하지만하지 않았다 도움.
무엇이 누락 되었습니까?
@ Ryan : 클래스 내부를 포함시키는 것이이 클래스에서 내 자신의 메서드를 정의하는 것과 동일하다는 것을 알고 있습니다. 이것은'self.number_with_delimiter (...)'를 사용할 수 있다는 것을 의미합니까? 클래스 외부에'include'를 넣으면'ActionView :: Helpers :: NumberHelper' 내부의 모든 메소드가 전역 변수가됩니까? –
@Misha : 네, 그들은 글로벌하게 될 것입니다. 그러나 그것은 일반적으로 Not A Good (tm)입니다. 이 경우 가장 좋은 방법은 모듈을 사용하여 클래스를 '확장'하는 것입니다. –
@ 라이언 : 어떤 클래스를 확장 하시겠습니까? –