Frage

Ich verwende Ruby on Rails 2.3.2 und auch das Act_as_taggable_on Puglin.Das hat mir zwei Datenbanktabellen generiert:Tags und Taggings.

Da ich davon nichts mehr brauchte, habe ich beispielsweise kein Tag-Modell erstellt.Jetzt ist das Projekt ausgereifter, ich muss einige Methoden für Tags erstellen, also habe ich ein Tag-Modell mit einigen Methoden darin erstellt.

Das Modell sieht in etwa so aus:

class Tag < ActiveRecord::Base

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

    return parent
  end
end

Wenn ich es von einem Controller aus aufrufe, wird die Methode nicht gefunden.Das ist der Code:

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

Dadurch wird eine Fehlermeldung ausgegeben, die besagt:

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

Ich weiss nicht, was falsch ist.Jede Hilfe wird geschätzt.

War es hilfreich?

Lösung

Sie definieren get_parent wie eine ClassMethod und rufen es wie eine Instanzmethode auf


def get_parent
 ...
end

Andere Tipps

Ich habe es gelöst.Das Problem bestand darin, dass das Tag-Modell bereits in seinem Ordner definiert war, da ich das Plugin „acts_as_taggable_on“ verwende.Also habe ich die Methode dort hinzugefügt und es hat funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top