J'ai un besoin dans mon application pour permettre aux utilisateurs de mettre en signet un message. Ils ne devraient être en mesure de créer un signet par publication. J'ai mis en place mon association polymorphique comme suit:Recherche d'associations polymorphes dans Rails
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
À mon avis, un utilisateur peut créer un signet. Je voudrais trouver un moyen de remplacer le code de vue "Créer un signet" par le code "Supprimer le signet", si l'utilisateur a déjà mis en signet un article particulier.
Si j'essaie de faire quelque chose comme ceci:
@post = Post.find(params[:id, :include => [:bookmarks]])
- if @post.bookmarks.users.include?(@user)
J'obtiens une erreur Méthode Non pour « utilisateurs »
Comment puis-je accéder à des propriétaires des signets, pour déterminer si l'utilisateur a déjà mis en signet une page?
Merci.