Comment puis-je obtenir les résultats suivants? J'ai deux modèles (blogs et lecteurs) et une table de jointure qui me permettra d'avoir une N: la relation M entre eux:comment éviter les doublons dans une relation has_many: through?
class Blog < ActiveRecord::Base
has_many :blogs_readers, :dependent => :destroy
has_many :readers, :through => :blogs_readers
end
class Reader < ActiveRecord::Base
has_many :blogs_readers, :dependent => :destroy
has_many :blogs, :through => :blogs_readers
end
class BlogsReaders < ActiveRecord::Base
belongs_to :blog
belongs_to :reader
end
Ce que je veux faire maintenant, est d'ajouter les lecteurs à différents blogs. La condition, cependant, est que je ne peux ajouter un lecteur à un blog qu'une seule fois. Il ne doit donc pas y avoir de doublons (même readerID
, même blogID
) dans le tableau BlogsReaders
. Comment puis-je atteindre cet objectif? La deuxième question est de savoir comment obtenir une liste de blogs auxquels les lecteurs ne sont pas déjà abonnés (par exemple pour remplir une liste de sélection déroulante, qui peut ensuite être utilisée pour ajouter le lecteur à un autre blog). ?
En outre, je voulais mentionner que c'est probablement la meilleure méthode, car la réponse acceptée sélectionne TOUTES les données de la rangée (par exemple, the_reader.blogs) alors que ma réponse sélectionne uniquement les identifiants des lignes (par exemple, the_reader. blog_ids). C'est un gros succès! –
c'est une meilleure solution et devrait être la bonne réponse. Merci Josh. –
thx Josh! En apparence plus mince! – Sebastian