maybe 'puts @person.middle_names.inspect' will give some information of the structure .
On 2009年12月27日 05:54, Matt Harrison wrote: > On Sat, Dec 26, 2009 at 09:43:26PM -0500, Rick DeNatale wrote: > >> On Sat, Dec 26, 2009 at 3:20 PM, Matt Harrison >> <[email protected]> wrote: >> >>> I've got a relationship: >>> >>> Person has many MiddleNames >>> and >>> MiddleName belongs to Person >>> >>> >>> In irb I can add a person, add a middle name then call >>> >>> @person.middle_names.first.name >>> >> And what happens if you don't add a middle name. >> >> [].first #=> nil >> > That is true, but in my scenario I have added a middle name and related it to > that > person. I will of course go and triple check that but I have executed the > copy and > pasted commands from the cuke steps and it worked in irb. > > Its quite possible I have slipped up but I will go and check. Thanks > > >> >>> to get that middle name. However when I try the exact same code in a view, I >>> get >>> >>> undefined method `name' for nil:NilClass >>> >>> If I iterate through like so: >>> >>> for mname in @person.middle_names >>> ?puts mname.name >>> >> >> Because if @person.middle_names is empty the loop body is not executed. >> > But it does execute the loop, and prints out the first of the names as > expected. This > is the weird thing. > > >>> Then it works perfectly, but for some reason using ".first" is failing in >>> the view. I've used this method many many times and never come across >>> anything quite like this. >>> > -- > > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" 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-talk?hl=en. > > > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" 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-talk?hl=en.

