Ben basit doğrulama vardır: Bu kodun üzerindeRaylar: Modelimde neden "number_with_delimiter" yöntemi tanınmadı?
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
, aşağıdaki hatayı aldık:
undefined method `number_with_delimiter' for #<Class:0x2665a58>
ben eklemek için çalıştı:
include ActionView::Helpers::NumberHelper
ama etmedi yardım et.
Neyi eksik?
@Ryan: Sınıfın içinde yer almanın kendi sınıflarımı bu sınıfta tanımlamaya eşdeğer olduğunu anlıyorum, değil mi? Bu, 'self.number_with_delimiter (...)' ı kullanabileceğim anlamına mı geliyor? 'Include' sınıfının dışına koyduğunuzda, ActionView :: Helpers :: NumberHelper 'içindeki tüm yöntemler global hale gelir mi? –
@Misha: Evet, küresel hale geldiler ama bu genellikle iyi bir fikir değil (tm). Bu durumda yapılacak en iyi şey, sınıfı modül ile genişletmektir. –
@Ryan: Hangi sınıfı genişletirsiniz? –