2012-01-16 38 views
0

在我创建的函数内部,我有一个循环来检查id是否为0,如果不是,再次检查最后一行的新idparent_id在函数内调用列名称

until Category.find_by_id(id) == 0 
     id = Category.parent_id 
     i += i 
end 

随着不过,我得到的undefined method 'parent_id'错误。我如何正确调用列名称?

回答

1

parent_id是一个实例方法,而不是一个类方法。你需要你的一个实例来调用它,在这种情况下,看起来你想要保存Category.find_by_id(id)调用的结果,并打电话给parent_id

作为一个侧面说明,你真要检查是否id0,因为Category.find_by_id(0)将返回nil,与0。此外相比,将抛出一个错误,你应该能够使用find,默认为找ID

+0

作为一个方面说明,比较不能抛出错误 – BitOfUniverse 2012-01-16 18:52:05

+0

比较可以抛出一个错误,但在这种情况下你是正确的。它不会抛出一个错误(我正在考虑'>'和家人) – 2012-01-17 07:06:08