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 %> 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-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Dec 30, 6:39 pm, webbieguy <justin.dean.griff...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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> 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-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Dec 30, 2009, at 4:08 PM, Frederick Cheung wrote:> On Dec 30, 6:39 pm, webbieguy <justin.dean.griff...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 %> > > FredIn 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- > talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org > . > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en > . > >Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org -- 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-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
<% 0.upto(10) do |i| %> i is now <%= i %> <% end %> On Dec 30, 1:39 pm, webbieguy <justin.dean.griff...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 > %> > > 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-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thank you! I figured it was just a simple thing I was doing wrong. Much appreciation!! Justin On Dec 30, 4:23 pm, David <furb...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> <% 0.upto(10) do |i| %> > i is now <%= i %> > <% end %> > > On Dec 30, 1:39 pm, webbieguy <justin.dean.griff...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 > > %> > > > 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-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Wed, Dec 30, 2009 at 2:16 PM, Rob Biedenharn <Rob-GBZH0y1GwQfnZcttdmLDtcI/UQi/AW5J@public.gmane.org>wrote:> On Dec 30, 2009, at 4:08 PM, Frederick Cheung wrote: > > On Dec 30, 6:39 pm, webbieguy <justin.dean.griff...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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 >Actually, in the above, the ''do'' is optional for both ''while'', ''until, and ''for'' loops in both Ruby 1.8.x and 1.9.x. Thus, the above is legal Ruby. Furthermore, one can write the above using a colon as follows in Ruby 1.8.x: for i in <Range> : #stuff end -Conrad> 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- > > talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > > . > > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en > > . > > > > > > Rob Biedenharn http://agileconsultingllc.com > Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org > > > > -- > > 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-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.