调用时无法识别模型的方法

时间:2010-03-11 15:07:52

标签: ruby-on-rails acts-as-taggable

我在rails 2.3.2上使用ruby并使用acts_as_taggable_on puglin。这产生了两个db表:标签和标签。

由于我不再需要这些,我没有创建Tag模型,例如。现在项目更加成熟,我需要为标签创建一些方法,所以我创建了一个包含一些方法的Tag模型。

模型看起来像这样:

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>

我不知道出了什么问题。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您可以将get_parent定义为ClassMethod,并将其称为实例方法


def get_parent
 ...
end

答案 1 :(得分:0)

我解决了。问题是,当我使用acts_as_taggable_on插件时,Tag模型已经在其文件夹中定义。所以,我在那里添加了方法并且它有效。