In this code below, ActiveRecord returns data from associations I don''t want. class Article < ActiveRecord::Base has_many :extras has_many :pages, :order => ''sortOrder'' has_many :assets def get_list return self.find(:all, :include => :extras, :conditions => ["publishable=''Y''"]) end end Without the :include statement, we get the usual lazy load, and no associations are loaded, only the attributes of the Article. However, I want data from the :extras association and not the others. When I use the code above, I get data from Article (good), Extras (good), and Assets (bad), and nothing from Pages (curious). I don''t understand why Assets is being included, and I don''t know how to keep that data out of the results. What am I missing? Thx. -- gw -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Apr 8, 5:35 am, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> When I use the code above, I get data from Article (good), Extras > (good), and Assets (bad), and nothing from Pages (curious). > > I don''t understand why Assets is being included, and I don''t know how to > keep that data out of the results. >Odd. Maybe you could show the sql it is executing ? Fred> What am I missing? Thx. > > -- gw > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frederick Cheung wrote:> On Apr 8, 5:35�am, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > wrote: > >> When I use the code above, I get data from Article (good), Extras >> (good), and Assets (bad), and nothing from Pages (curious). >> >> I don''t understand why Assets is being included, and I don''t know how to >> keep that data out of the results. >> > > Odd. Maybe you could show the sql it is executing ?Hmm. now I am seeing something different. With this code (more verbatim this time)....... class Article < ActiveRecord::Base self.primary_key = ''rcrd_id'' has_many :extras, :dependent => :destroy has_many :pages, :order => ''sortOrder'', :dependent => :destroy has_many :assets, :dependent => :destroy def self.get_list list = self.find(:all, :include => [:extras], :conditions => [ "#{self.table_name}.rcrd_status=''Y'' AND ready=''Y'' AND publishDate <= :today", {:today => Date.today.to_s} ]) end end Or with this code...... def self.get_list list = self.find(:all, :conditions => [ "#{self.table_name}.rcrd_status=''Y'' AND ready=''Y'' AND publishDate <= :today", {:today => Date.today.to_s} ]) end I now see these same queries in the log..... (and this is restarting Rails after each time I change the code, just to be sure) [4;36;1mArticle Load (1.6ms) [0m [0;1mSELECT * FROM `articles` WHERE (articles.rcrd_status=''Y'' AND ready=''Y'' AND publishDate <= ''2009-04-08'') [0m [4;35;1mAsset Load (0.8ms) [0m [0mSELECT * FROM `assets` WHERE (`assets`.article_id = ''abc123'') [0m [4;36;1mExtra Load (1.1ms) [0m [0;1mSELECT * FROM `extras` WHERE (`extras`.article_id = ''abc123'') [0m I know it was different before, I even showed someone to confirm it. I don''t see anything odd about the other models, they both have a simple belongs_to articles statement, and nothing else. Pages has a belongs_to articles, and a has_many to another model. Maybe that keeps pages from being loaded? So, I dunno. But shouldn''t that second finder case (without :include) not be returning :assets nor :extras? I end up using debug() to output the results to confirm what is actually being loaded, and I get those two associations, but no :pages data. Seems weird. -- gw -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On Apr 8, 9:52 am, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Frederick Cheung wrote: > > On Apr 8, 5:35 am, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > > wrote:> So, I dunno. But shouldn''t that second finder case (without :include) > not be returning :assets nor :extras? I end up using debug() to output > the results to confirm what is actually being loaded, and I get those > two associations, but no :pages data. Seems weird. >Random question: are you doing this from the console or is this output from an app. Are you sure the load is coming from the find and not from the association been accessed subsequently (eg put a log statement after the find(..., :include) ? ) Fred> -- gw > > -- > Posted viahttp://www.ruby-forum.com/.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Frederick Cheung wrote:> On Apr 8, 9:52�am, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> > wrote: >> Frederick Cheung wrote: >> > On Apr 8, 5:35 am, Greg Willits <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> >> > wrote: > >> So, I dunno. But shouldn''t that second finder case (without :include) >> not be returning :assets nor :extras? I end up using debug() to output >> the results to confirm what is actually being loaded, and I get those >> two associations, but no :pages data. Seems weird. >> > Random question: are you doing this from the console or is this output > from an app. Are you sure the load is coming from the find and not > from the association been accessed subsequently (eg put a log > statement after the find(..., :include) ? )@#$#! After writing a big long thing to prove there was no other action taking place, and taking one more wider look before sending it to be sure I wasn''t making an idiot of myself, I just scrolled down a little further in the model to re-discover an after_find I wrote which would in fact touch assets & extras. I had just so compartmentalized the :include thing in my mind, I wasn''t remembering after_find. Egads. So sorry to waste your time Fred. But proving there was no log statement question pushed me to at least solve the (not so puzzling) puzzle. Thanks. -- gw -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 8 Apr 2009, at 10:44, Greg Willits wrote:> > @#$#! After writing a big long thing to prove there was no other > action > taking place, and taking one more wider look before sending it to be > sure I wasn''t making an idiot of myself, I just scrolled down a little > further in the model to re-discover an after_find I wrote which > would in > fact touch assets & extras. > > I had just so compartmentalized the :include thing in my mind, I > wasn''t > remembering after_find. > > Egads. So sorry to waste your time Fred. But proving there was no log > statement question pushed me to at least solve the (not so puzzling) > puzzle. Thanks.D''oh! Happens to all of us :-) Fred> > > -- gw > > > > > -- > Posted via http://www.ruby-forum.com/. > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---