0

私は ruby​​ on rails 2.3.2 を使用しており、acts_as_taggable_on puglin も使用しています。これにより、タグとタグ付けという 2 つの db テーブルが生成されました。

それ以上のものは必要ないので、たとえば 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>

何が悪いのかわからない。どんな助けでも大歓迎です。

4

2 に答える 2

1

ClassMethod のように get_parent を定義し、インスタンス メソッドのように呼び出します


def get_parent
 ...
end
于 2010-03-11T15:18:17.040 に答える
0

私はそれを解決しました。問題は、acts_as_taggable_on プラグインを使用しているため、タグ モデルがそのフォルダーに既に定義されていることでした。そこで、そこにメソッドを追加しましたが、うまくいきました。

于 2010-03-12T13:54:33.780 に答える