Ruby on Rails
Thursday, March 19, 2020
I'm not sure if you can have all that with a single AR query, I think you need a custom query (I would use a UNION query an I think AR doesn't support that)
El jue., 19 mar. 2020 a las 13:25, Blake LeBlanc (<blake.leblanc1@gmail.com>) escribió:
--When dealing with polymorphic associations, is it possible to have a has_many through query that pulls in ALL available source_types?My understanding so far is that each source type needs its own query method, as I show here in the Image model**image.rb**```has_many :image_tagshas_many :tags, through: :image_tags, source: :taggable, source_type: 'Tag'has_many :people, through: :image_tags, source: :taggable, source_type: 'Person'has_many :businesses, through: :image_tags, source: :taggable, source_type: 'Business'...```**tag.rb**```has_many :image_tags, as: :taggablehas_many :images, through: :image_tags```**image_tag.rb**```belongs_to :imagebelongs_to :taggable, polymorphic: truedef build_taggable(params)self.taggable = taggable_type.constantize.new(params)end```What I'd like to be able to do, however, is create one query method that pulls in all associated records regardless of what source_type they might belong to.Just thinking out loud, would that likely involve creating some sort of raw SQL join that acts directly on the ImageTags table? Or is there a more Railsy/ActiveRecordy way of approaching it?Thank you in advance for any help or insights!-Blake
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/c537e34b-2d49-4e30-a197-2668fb773f99%40googlegroups.com.
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAPS3bcBnGfBU4xB_yc%3DBdKG8zEpZ-UKKwi2td68qYgkLPP-xhw%40mail.gmail.com.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment