Ich muss in meiner Anwendung den Benutzern die Möglichkeit geben, einen Beitrag mit einem Lesezeichen zu versehen. Sie sollten nur ein Lesezeichen pro Beitrag erstellen können. Ich habe meine polymorphe Assoziation wie folgt eingerichtet:
class Post < ActiveRecord::Base
has_many :bookmarks, :as => :bookmarkable
end
class Bookmark < ActiveRecord::Base
belongs_to :bookmarkable, :polymorphic => true
belongs_to :user
end
class User < ActiveRecord:Base
has_many :posts
has_many :bookmarks
end
Meiner Meinung nach kann ein Benutzer ein Lesezeichen anlegen. Ich möchte eine Möglichkeit finden, den Code der Ansicht "Lesezeichen erstellen" durch den Code "Lesezeichen löschen" zu ersetzen, wenn der Benutzer bereits ein Lesezeichen für einen bestimmten Beitrag erstellt hat.
Wenn ich versuche, so etwas zu tun:
@post = Post.find(params[:id, :include => [:bookmarks]])
- if @post.bookmarks.users.include?(@user)
Ich erhalte die Fehlermeldung No Method für "users".
Wie kann ich auf die Besitzer der Lesezeichen zugreifen, um festzustellen, ob der aktuelle Benutzer bereits ein Lesezeichen für eine Seite gesetzt hat?
Ich danke Ihnen.