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
-~----------~----~----~----~------~----~------~--~---

Reply via email to