I have this query: Report. joins(:alerts). joins(:alert_code). where(:unit_id => unit_id). where{time < my{self.time}}. where("alert_codes.name LIKE ?", "%Inside virtual fence%"). order("reports.time DESC").first Basically, it breaks: ActiveRecord::ConfigurationError (Association named ''alert_code'' was not found; perhaps you misspelled it?): My associations look like this: report has_many alerts alert belongs_to :alert_code, :foreign_key => :code I am trying to get the first report whose alerts belongs to alert_code whose name is "inside virtual fence". So there are 3 associations here. Trying to establish the connection. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
On Mar 20, 2013, at 6:04 PM, John Merlino wrote:> I have this query: > > Report. > joins(:alerts). > joins(:alert_code).I think that you''re looking for ''includes'' rather than ''joins'' for these associations. Report.includes({:alerts => :alert_code}). To use joins, you would have to supply more SQL-ish clauses, not symbols for the associations. http://apidock.com/rails/v3.2.8/ActiveRecord/QueryMethods/joins http://apidock.com/rails/v3.2.8/ActiveRecord/QueryMethods/includes -Rob> where(:unit_id => unit_id). > where{time < my{self.time}}. > where("alert_codes.name LIKE ?", "%Inside virtual > fence%"). > order("reports.time DESC").first > > Basically, it breaks: > > ActiveRecord::ConfigurationError (Association named ''alert_code'' was > not found; perhaps you misspelled it?): > > > My associations look like this: > > report has_many alerts > alert belongs_to :alert_code, :foreign_key => :code > > I am trying to get the first report whose alerts belongs to alert_code > whose name is "inside virtual fence". So there are 3 associations > here. Trying to establish the connection. > > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit https://groups.google.com/groups/opt_out. > >-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
On Thursday, March 21, 2013 2:33:24 AM UTC, Rob Biedenharn wrote:> > > On Mar 20, 2013, at 6:04 PM, John Merlino wrote: > > > I have this query: > > > > Report. > > joins(:alerts). > > joins(:alert_code). > > I think that you''re looking for ''includes'' rather than ''joins'' for these > associations. > > Report.includes({:alerts => :alert_code}). > >To use joins, you would have to supply more SQL-ish clauses, not symbols> for the associations. > > joins accepts either association names or sql clauses. When passingassociation names the syntax is the same as for includes, in particular you have to specify nested associations as a hash (as you have done). Fred> http://apidock.com/rails/v3.2.8/ActiveRecord/QueryMethods/joins > http://apidock.com/rails/v3.2.8/ActiveRecord/QueryMethods/includes > > -Rob > > > where(:unit_id => unit_id). > > where{time < my{self.time}}. > > where("alert_codes.name LIKE ?", "%Inside virtual > > fence%"). > > order("reports.time DESC").first > > > > Basically, it breaks: > > > > ActiveRecord::ConfigurationError (Association named ''alert_code'' was > > not found; perhaps you misspelled it?): > > > > > > My associations look like this: > > > > report has_many alerts > > alert belongs_to :alert_code, :foreign_key => :code > > > > I am trying to get the first report whose alerts belongs to alert_code > > whose name is "inside virtual fence". So there are 3 associations > > here. Trying to establish the connection. > > > > -- > > 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-ta...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <javascript:>. > > To post to this group, send email to rubyonra...-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<javascript:>. > > > For more options, visit https://groups.google.com/groups/opt_out. > > > > > >-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/y-pZX1gYkeQJ. For more options, visit https://groups.google.com/groups/opt_out.