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