Wie kann man einen „do“ Block in einem Rails-Modell läuft, während immer noch eine Auflistung: abhängig?

StackOverflow https://stackoverflow.com/questions/282178

Frage

So habe ich ein User-Modell, dass: has_many andere Modelle wie Dokumente, Videos, Beiträge und dergleichen. Meine Frage ist, wenn ich einen „do“ Block aus dem User-Modell ausführen wie folgt:

has_many :posts do
    def recent
      find(:all, :order => 'created_at desc', :limit => 12)
    end
  end

Auf diese Weise können Sie mich rufen Sie einfach so etwas wie user.posts.recent nur die Beiträge mit dem Benutzer in Verbindung stehen zu finden. In diesem Ort, wie kann ich noch hinzufügen: eine abhängige =>: zerstören oder: abhängig =>: DELETE_ALL zu dieser Vereinigung? Alles, was ich versucht habe, so hat mir weit errored aus.

War es hilfreich?

Lösung

Es sieht aus wie Sie einen Blick auf mit nehmen sollten named_scope .

Es gibt keinen Grund, warum Sie einen do-Block gegen den Verein haben sollten.

Sie sollten Sie diese letzte Methode in einem benannten Umfang drehen und Sie können dann tack auf. Abhängig => zerstören etc etc

Viel Glück!

Andere Tipps

Dies sollte gut AFAIK arbeiten:

has_many :posts, :dependent => :destroy do
    def recent
      find(:all, :order => 'created_at desc', :limit => 12)
    end
  end
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top