Метод модели не распознается при вызове - PullRequest
0 голосов
/ 11 марта 2010

Я использую ruby ​​на рельсах 2.3.2, а также использую act_as_taggable_on puglin. Это дало мне две таблицы базы данных: теги и теги.

Поскольку мне больше ничего от этого не требовалось, я, например, не создавал модель 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 ]

1 голос
/ 11 марта 2010

Вы определяете get_parent как ClassMethod и вызываете его как метод экземпляра


def get_parent
 ...
end
0 голосов
/ 12 марта 2010

Я решил это.Проблема заключалась в том, что, поскольку я использую плагин act_as_taggable_on, модель Tag уже определена в его папкеИтак, я добавил метод там, и он работал.

...