I am new to this and need some help DRYing this view code:
<div style="float: left;">
<h3>drop task name</h3>
<ul>Projects
<% for project in @projects %>
<% project_id = "project_#{project.id}" %>
<li id="<%= project_id %>" class="project" style="background-color:
#CCC; margin: 0 20px 2px 0;">
<%=h project.name %>
</li>
<% #TODO need to DRY up the drop_receiving_element, perhaps with a
helper%>
<%= drop_receiving_element(
project_id, # The id of the receiving
element
:accept => "task_name", # The CSS class of the
dropped element
#The action to call (update the database and then update the
project name field for that task via RJS)
:url => { :controller => :tasks, :action => :update,
'task[project_id]'=> project.id.to_s }
#TODO there is probably a better way to refer to the task's
project_id so that we can avoid the extra line in the update action of
the task controller
); %>
<% end %>
</ul>
<ul>Contexts
<% for context in @contexts %>
<% context_id = "context_#{context.id}" %>
<li id="<%= context_id %>" class="context" style="background-color:
#CCC; margin: 0 20px 2px 0;">
<%=h context.name %>
</li>
<%= drop_receiving_element(
context_id, # The id of the receiving
element
:accept => "task_name", # The CSS class of the
dropped elememt
#The action to call (update the database and then update the
project name field for that task via RJS)
:url => { :controller => :tasks, :action => :update,
'task[context_id]'=> context.id.to_s }
#TODO there is probably a better way to refer to the task's
context_id so that we can avoid the extra line in the update action of
the task controller
); %>
<% end %>
</ul>
</div>
What is the best way to do this?
Thanks,
Bill