Yes, there is https://github.com/rails/rails/commit/8c2c60511beaad05a218e73c4918ab89fb1804f0#commitcomment-2211685
Rafael Mendonça França http://twitter.com/rafaelfranca https://github.com/rafaelfranca On Mon, Nov 4, 2013 at 11:53 AM, Gabriel Sobrinho < [email protected]> wrote: > França, > > There is a reason for that? They sound useful in a lot of scenarios. > > On Wednesday, October 30, 2013 2:02:54 PM UTC-2, Rafael Mendonça França > wrote: > >> The bang methods are private and should not be used in applications (see >> the :nodoc: in the method definition) >> >> Rafael Mendonça França >> http://twitter.com/rafaelfranca >> https://github.com/rafaelfranca >> >> >> On Wed, Oct 30, 2013 at 1:51 PM, Gary Weaver <[email protected]> wrote: >> >>> I understand that bang methods in the classic Ruby sense are supposed >>> to alter the current instance, but getting errors like: >>> >>> NoMethodError: undefined method `where!' for #<Class:0x007ff1522d3110> >>> >>> and >>> >>> NoMethodError: undefined method `includes!' for #<Class:0x007ff1522d3110> >>> >>> when calling the bang methods from QueryMethods on a model class are >>> really not helpful. >>> >>> It's understandable that you don't want to pass a model class into a >>> method that expects a relation that it can act upon and change with a bang >>> query method and have it successfully create a new relation and call some >>> method on it that is never again seen, hence the error. I also understand >>> wanting to avoid any more checking/raising code than necessary in >>> ActiveRecord both for maintainability, clarity, and maybe efficiency- but >>> just look at this: >>> >>> 2.0.0p247 :001 > MyModel.to_s >>> => "MyModel" >>> 2.0.0p247 :002 > MyModel.new.to_s >>> => "#< MyModel:0x007fc92aa017e8>" >>> 2.0.0p247 :003 > MyModel.where({}) >>> => ... >>> 2.0.0p247 :003 > MyModel.where!({}) >>> NoMethodError: undefined method `where!' for #<Class:0x007fc92a95a240> >>> >>> Thanks! >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Core" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> >>> Visit this group at http://groups.google.com/group/rubyonrails-core. >>> 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: Core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/rubyonrails-core. > 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: Core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/rubyonrails-core. For more options, visit https://groups.google.com/groups/opt_out.
