0
我有下面的類在Rails 3應用程序:的Rails 3:類方法中找不到的驗證聲明
class Attribute
...
def self.ANNOTATION
self.find_by_table_name('annotations')
end
...
end
在另一類,我指的是這個方法在validates
電話:
validates :attribute_type_id, :attr_correct => {attr: Attribute.ANNOTATION}
當我運行我的測試時,出現Attribute.ANNOTATION
的NoMethodError。但是,如果我在AttrCorrectValidator.validate_each
方法中只提及Attribute.ANNOTATION
,它就可以正常工作。
爲什麼我的班級方法不能在validates
聲明中識別?它可能與Ruby/Rails如何評估類聲明有關嗎?
應該知道。謝謝!另外,我還沒有看過完全合格的語法。在'::'之前是否存在一個隱含的類,比如'Object :: Attribute.ANNOTATION',或者這是它自己的東西? – abeger 2013-04-29 15:39:02
'::'當用作一元運算符時,將使用全局(匿名)名稱空間解析爲操作數。 – 2013-04-29 17:43:42
很高興知道!再次感謝! – abeger 2013-04-29 20:12:44