On Dec 30, 2009, at 4:08 PM, Frederick Cheung wrote: > On Dec 30, 6:39 pm, webbieguy <justin.dean.griff...@gmail.com> wrote: >> Hi, >> >> I have a very simple problem. I am a newbie to rails and for the life >> of me can't figure out why a simple incrementing loop is not printing >> to screen correctly. I know this has to be something simple but can't >> find anything specific to my problem. >> >> <%= >> for i in 0..10 do >> puts "i is now #{i}" >> end >> %> >> > Because in a view you don't use puts (puts either goes nowhere or to a > logfile somewhere). > The <%= stuff the result of the chunk of code into the view, for a > 'for' statement like you've got there then the result is the thing > iterated over (ie 0..10). > > you want something more like > > <% looping construct of your choice do %> > i is now <%= i %> > <% end %> > > Fred
In addition to what Fred says, your other problem is that you have: for i in <Range> do #stuff end and you want: (note there's no 'do' on a for loop) for i in <Range> #stuff end so that would be: for i in 0..10 #stuff end You're getting "0..10" because that's the value of the expression in the <%= %> Try this in irb and you'll see. irb> for i in 0..10 irb> puts i irb> end 0 1 2 3 4 5 6 7 8 9 10 => 0..10 irb> It's more likely, you want to have: <% (0..10).each do |i| %> i is now <%= i %> <% end %> The difference being mainly that the local variable i will only exist inside the block and iterating over a collection using .each is much more common. See James Gray's article "Shades of Gray: The Evils of the For Loop" for a more thorough explanation. http://blog.grayproductions.net/articles/the_evils_of_the_for_loop -Rob >> Prints to screen "0..10" as opposed to what I want: >> >> 0 >> 1 >> 2 >> 3 >> 4 >> 5 >> 6 >> 7 >> 8 >> 9 >> 10 >> >> Can someone help me with this very simple problem. I have tried >> until, .times, and while loops to no avail. So there must be some >> type >> of syntax magic I am missing. >> >> Thanks in advance, >> Justin > > -- > > 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 rubyonrails- > t...@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en > . > > Rob Biedenharn http://agileconsultingllc.com r...@agileconsultingllc.com -- 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 rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.