I am super new to rails and I was wondering how could I DRY this
<ul>
<%- for page in @pages -%>
<li><%= link_to_remote page.title, :url => { :action => "view_page", :id => page.id} %>
<%= link_to_remote (image_tag('add')), :url => { :action => 'add_sub', :id => page.id } %>
</li>
<%- if page.children -%>
<ul>
<%- for subpage in page.children -%>
<li id="page_<%= subpage.id %>">
<%= link_to_remote subpage.title, :url => { :action => "view_page", :id => subpage.id} %>
<%= link_to_remote (image_tag('delete')), :url => { :action => 'delete_page', :id => subpage.id } %></li>
<%- end -%>
</ul>
<%- end -%>
<%- end -%>
</ul>
Terry, Sorry I used the wrong wording. I think what I meant to say was I
seem to have alot of logic in my view I would like a more elegant way to
achieve what I have here. a helper? im am not sure.
Terry Donaghe wrote:
Jeff1
(Jeff)
May 10, 2007, 4:20pm
3
Looks pretty good, but if things feel ugly, you might moving the
inside of each loop intto partials:
So your whole template is reduced to:
<ul>
<%= render :partial => 'page', :collection => @pages %>
</ul>
and then _page.rhtml would be:
<li><%= link_to_remote page.title, :url => { :action =>
"view_page", :id => page.id} %>
<%= link_to_remote (image_tag('add')), :url => { :action =>
'add_sub', :id => page.id } %>
</li>
<%= render :partial => 'subpage', :collection => page.children if
page.children %>
and finally _subpage.rhtml would be:
<li id="page_<%= subpage.id %>">
<%= link_to_remote subpage.title, :url => { :action =>
"view_page", :id => subpage.id} %>
<%= link_to_remote (image_tag('delete')), :url => {:action =>
'delete_page', :id => subpage.id } %>
</li>
More files, but each one is simple. Just food for thought.
Jeff
softiesonrails.com