Brian McCallister is doing an excellent job showing Strut-ters how Rails work by comparing it to their own environment. In this round, he’s taking a look at the oh-horror that is unleashing a real programming language on view logic. He finds that perhaps it’s not so bad at all comparing:
<% for invite in @invitations %> ... <% end %>
…from Rails to the JSP approach of tag libraries with:
<%@ taglib uri="/tags/struts-logic" prefix="logic" %> ... <logic:iterate name="invite" property="invitation"> ... </logic:iterate>
Indeed they do look similar. For more on that discussion, read my views on template languages and why the scriplet approach works in Rails.
As a sidenote, I’d like to suggest a few improvements to the tag/value mix that Brian has in his examples. For example, we could convert:
<form action="<%= url_for :action => 'register', :controller => 'rsvp' %>"> ... <input type="text" name="invite_names[<%= slot %>]" length="30"<%= "value='#{@invite.split_names[slot]}'" %>/> ...
To use a few more succinct FormTagHelper helper methods:
<%= form_tag :action => 'register', :controller => 'rsvp' %> ... <%= text_field_tag "invite_names[#{slot}]", @invite.split_names[slot] %>
But that’s nitpicking. Brian is doing a fabulous job expressing the unknown in familiar terms. If you’re in need for something more visual on the Helpers, see this video demonstrating how to create a helper method in Rails.