Trying to understand the difference between similar iterator


#1

What’s the difference between these two?
Objective:
Trying to display the addresses of the students that has “has_many”
relations with addresses

<% @student.addresses.each {|address| "Address: #{address.addr1}
"} %> ****** did not work <% end %>

This code worked:

<% @student.addresses.each do |address|%> <%= address.addr1 %>
<% end %>

Any comments appreciated.
Thanks
Silvy Mathews


#2

Hi,
You shouldn’t need the <% end %> because you are passing in a block.
This should work as well.

<% @student.addresses.each {|address| %>
<%= address.addr1 %>

<% } %>

Eric

removed_email_address@domain.invalid wrote:

<% @student.addresses.each do |address|%> removed_email_address@domain.invalid http://lists.rubyonrails.org/mailman/listinfo/rails


Eric G.
http://www.ericgoodwin.com


#3

Well first of all, when you’re iterating through a block, you don’t
need to have an end. In fact it should give you some kind of error.
Secondly, <% just evals a statement, <%= renders the output. So your
loop should be:

<%= @student.addresses.each {|address| "Address: #{address.addr1}
"} %>

Pat