I'm very much in favor of this as well. Please make it so. To address Andy's concerns, we should have proper error messages if this is overwriting an attribute of the same name. But it's too convenient not to have.
On Friday, May 30, 2014 8:11:53 PM UTC+2, Jeremy Friesen wrote: > > Following up on https://github.com/rails/rails/issues/15428, with > adjustments. > > Throughout the Rails code there are a few references to > `object.class.model_name`. Instead of always pushing this up to the class, > it makes sense to me that we ask the model for its model_name. > > This might obviate the need for the dubious > ActionController::ModelNaming#model_name_from_record_or_class, > https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/model_naming.rb > > > module ActionController > module ModelNaming > # Converts the given object to an ActiveModel compliant one. > def convert_to_model(object) > object.respond_to?(:to_model) ? object.to_model : object > end > > def model_name_from_record_or_class(record_or_class) > (record_or_class.is_a?(Class) ? record_or_class : > convert_to_model(record_or_class).class).model_name > end > end > end > > > Example: > > class Foo > extend ActiveModel::Naming > def model_name > class.model_name > endend > Foo.respond_to?(:model_name)=> true > Foo.new.respond_to?(:model_name)=> true > Foo.model_name == Foo.new.model_name=> true > > -- 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/d/optout.
