Augusto Ruibal (Shinta)
2011-Nov-01 15:09 UTC
[Rails 3.0.7-10] Missing Scope + Includes breaks the Chain
Hello guys, found this issue in version 3.0.7, just working in the same site with 3.0.10 and the same issue pops out. Lets say we have a Classified site, so we have ads and pictures: class Ad < ActiveRecord::Base has_many :pictures scope :active, where("expires_on > now()") scope :unsold, where("sold = 0") scope :approved, where("status = "approved") end class Picture < ActiveRecord::Base belongs_to :ad end Now lets run some tests and try to explain myself:> Ad.unsolds.to_sql=> "SELECT `ads`.* FROM `ads` WHERE (sold = 0) ORDER BY ads.created_at desc" All good.> Ad.there_is_no_scope.unsolds.to_sql=> NoMethodError: undefined method `there_is_no_scope'' for #<Class: 0xa41b7d4> Awesome. Now comes the issue> Ad.includes(:picture).there_is_no_scope.unsolds.to_sql=> NoMethodError: I have 1.6M of records in my ads table, obviously I noted some kind of hanging, the problem was, Ad.includes(:picture).there_is_no_scope.unsolds.to_sql raise the NoMethodError but also executes the query defined before the missing scope, in this case "select * from ads". I can create an example application if this is not understandable. Just want you guys to know about this issue. Thanks. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.