Forum: Rails Germany [acts_as_commentable] Nur bestimmte Kommentare ausgeben

5d7c8b8f2de06c07b2bf0848d20ce71f?d=identicon&s=25 Christian Beier (cbeier)
on 2009-07-24 11:27
Hallo,

in einem Projekt setze ich das Plugin "acts_as_commentable" ein, dass an
einen User gebunden ist und eine polymorphe Beziehung besitzt
(commentable):

  belongs_to :commentable, :polymorphic => true
  belongs_to :user

Wiederum wird das Model "User" mit "Profile" assoziiert (1:1). Im
Profile Model wird acts_as_commentable eingebunden (has many :comments).

In der comments Tabelle gibt es ein Datenfeld commentable_id, welches
den Nutzer repräsentiert auf dessen Profil das Kommentar geschrieben
wurde. Mein Problem ist jetzt, dass ich an einer Stelle nur die
Kommentare eines bestimmten Benutzertyps ("User") ausgebenlassen möchte.

Wenn ich mit
  @test = Comment.all(:include => :commentable, :limit => 4)
mir die Kommentare ausgeben lassen, kann ich über @test.commentable.type
auf den Typ zugreifen. Allerdings habe ich es noch nicht hinbekommen,
den Typen schon beim Abruf aus der Datenbank zu filtern. So etwas in der
Art:

  @test = Comment.all(:include => :commentable, :conditions =>
["commentable.type = ?", "User"] :limit => 4)

Wenn ich das versuche, kriege ich die Fehlermeldung:
"Can not eagerly load the polymorphic association :commentable" bzw.
beim 2. Zugriff: "Association named 'profile' was not found; perhaps you
misspelled it?"

Kann das überhaupt so in etwa funktionieren?
Bitte um eure Hilfe.

Grüße,
Christian
This topic is locked and can not be replied to.