I heartily support your observations: losing so many names to "reserved" status is so incongruous in this so-called modern age of technology! For those of us who enjoyed the world of FORTRAN, a construct which had no reserved words, losing such common nouns as "type", "error", "group", etc (especially when context should net exclude their use) is anachronistic.
On Jul 3, 8:01 am, bryanl <[EMAIL PROTECTED]> wrote: > I’ve been thinking about Rails reserved words lately, and I’ve come up > with a solution that works in theory. Before I share my solution, let > me help you understand where my frustration comes from. > > A while back, I was making a template system, and unsurprisingly, I > had a ActiveRecord class named Template, and a controller named > TemplatesController. Rails is using an instance variable named > @template, and I’ve stomped all over it by creating my own. The same > thing happened when I had a resource called Url. > > http://idisk.mac.com/osesm/Public/Pictures/Skitch/Action_Controller__...http://idisk.mac.com/osesm/Public/Pictures/Skitch/Action_Controller__... > > My solution for instance variables simple. In Views, Rails will set an > instance variable with a not so common name. I’m leaning towards > __variable_name__ or even __rails_instance_hash[:key]__. This way, > there isn’t any confusion when it comes to instance variable names. > > Another space where there are conflicts are in ActiveRecord models. > You can’t have a text field called errors. > > http://idisk.mac.com/osesm/Public/Pictures/Skitch/bryan%40dmac__tmp_t...http://idisk.mac.com/osesm/Public/Pictures/Skitch/bryan%40dmac__tmp_t... > > Rails assumes the errors method of your ActiveRecord object to be an > instance of ActiveRecord::Errors. > > In my opinion, this doesn’t make the most sense. I believe we could > apply the double underscores here as well. Instead of #errors, it > would be #__errors__. You should be able to have any attribute name as > long as it is legal for the underlying database. Rails should not be > polluting your model namespace. > > One problem with these changes is Rails has been like this for a few > years now. Old code would break, so these types of changes would have > to be introduced in a major release. The benefit of these changes > could be huge. Lessening the chance that your code will tramp over > Rails internals could be a great thing. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
