Hit By a Train

|

I'm actually trying to produce something with Ruby on Rails, and I finally got hit by the train. Here's the problem that makes no sense at all. I have a view that does the following:

<%= render :partial => 'role', :collection => @roles %>

@roles is a class attribute that's an array of roles which gets iterated over. This is where things get foobarred. In the partial I get a variable called role which is good, but I want to render a text field in this partial. Rails provides me with text_field. Good again because I can just enter the following to print the role's name:

<%= text_field "role", "name" %>

But wait! text_field will only work with class attributes for some dumb reason. Yes, that means it'll call @role.name to get the name, not role.name. If I wanted @role, I would have used @role in my call to text_field.

I can not figure out why this could have been a good idea. Now I'm stuck contemplating whether I should hack up my own text_field that works logically or not.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Glad I'm not the only one

I ran (and stumbled) exacltly over this problem you described, and was still looking what I did wrong. Glad to see that someone has the opinion that this is strange, hard-to-explain behavior.
Ever thought about submitting a ticket to the Rails project?

Ad's by Google