2010-03-11 40 views
0

我在rails 2.3.2上使用ruby,并且还使用了acts_as_taggable_on puglin。这给我生成了两个数据库表:标签和标签。模型的方法不被识别时调用

因为我不需要更多的东西,所以我没有创建标签模型。现在项目更成熟了,我需要为标签创建一些方法,所以我创建了一个带有一些方法的标签模型。

这个模型看起来是这样的:

class Tag < ActiveRecord::Base 

    def self.get_parent 
    parent = Tag.find(self.parent_id) 

    return parent 
    end 
end 

当我把它从一个控制器,它会找不到方法。这是代码:

tag = Tag.find(tag_id) 
the_parent = tag.get_parent 

这将抛出一个错误,说:

undefined method `get_parent' for #<Tag id: 13, name: "Historia", parent_id: 12> 

我不知道什么是错的。任何帮助将不胜感激。

回答

1

你定义get_parent就像一个类方法,并调用它像实例方法


def get_parent 
... 
end 
+0

我试过这个,但它没有工作,有些朋友告诉我改变它为def self.get_parent,但它也没有工作。 – 2010-03-11 15:47:33

0

我解决它。问题是,因为我正在使用acts_as_taggable_on插件,所以标签模型已经在其文件夹中定义。所以,我在那里添加了方法,并且它工作。