Ich habe zwei Modelle: Item
und Tag
. Beide haben ein Namensattribut. Ich möchte Elemente finden, die mit mehreren Tags versehen sind.Rails: Get alle Artikel markiert mit x UND y UND z
class Item < ActiveRecord::Base
has_many :tags
validates_presence_of :name
end
class Tag < ActiveRecord::Base
belongs_to :item
validates_presence_of :name
end
eine Liste von Tag-IDs gegeben, kann ich mich leicht genug, um die Liste der Einzelteile mit einem Tag oder anderen getaggt:
# Find the items tagged with one or more of the tags on tag_ids
Item.all(:conditions => ['tags.id in (?)', tag_ids], :joins => :tags)
Wenn tag_ids
{1,4}
ist, dann bekomme ich alle Bilder getaggt mit 1, oder 4 oder beiden.
Ich will jetzt wissen, wie die Bilder zu bekommen, die mit beiden markiert sind - 1 UND 4.
ich die SQL nicht einmal vorstellen kann, die hier gebraucht wird.
Ich habe das gleiche Problem ... Was für ein Zufall !! – fjuan
Ich glaube, dass Code auch "Duplikate" gibt, wenn ein Gegenstand auch mit "beiden" -Tags versehen ist, was möglicherweise nicht gut ist (benutze: group => 'items.id', damit es keine Duplikate zurückgibt). – rogerdpack