2013-04-06 99 views
0

我有一个称为任务的表的索引视图。在每一行我希望用户能够点击编辑或添加附件(添加附件)。onclick获取正确的数据

这是代码:

<% @workorder.tasks.each do |task| %> 
    <tr> 
     <td><%= task.position %></td> 
     <td><strong><%= link_to task.taskname, task_path(task) %></strong></td> 
     <td> 
      <a rel="popover" data-content="<%= task.longdesc %>" data-original-title="Description:"><img src='/images/find.ico' width='20' height='20'></a> 
     </td> 
     <td><%= task.employee.try(:employee_full_name) %></td> 
     <td><%= task.taskstatus.try(:statuscode) %></td> 
     <td><%= task.attachments.count %></td> 
     <td> 
      <a href="#" class="answer" data-type="select" data-pk="1" data-resource="task" data-source="/ratings" data-name="rating_id" data-url="/tasks/<%= task.id %>" data-original-title="Select Rating"> 
      <% if task.rating_id != nil %> 
       <%= textarea_format(task.rating.ratingname) %> 
      <% end %> 
      </a> 
     </td> 
     <% if current_user.admin == true %> 
      <td><%= link_to 'Edit', edit_task_path(task), :class => 'btn btn-mini btn-success' %></td> 
      <td><%= link_to 'Add Attach', new_attachment_path, :class => 'btn btn-mini btn-primary', :onclick => flash[:task_id] = task.id %></td> 
     <% end %> 
    </tr> 

的添加附加链接指向的网页添加附件。为了让它正确地附加到特定的任务,我使用闪存来发扬task.id。

但是,onclick总是传递最后一个task.id,而不是每个包含该行task.id的按钮。

任何想法我可以做到这一点?

谢谢!

回答

1

我会想你的“添加附加”链接看起来像:

<td> 
    <%= link_to 'Add Attach', 
     new_attachment_path(task.id), 
     :class => 'btn btn-mini btn-primary' 
    %> 
    </td> 

这里假设你有一个路由条目,看起来像:

match "tasks/:id/add_attach" => "tasks#add_attach" , :as=>"new_attachment" 

然后在您的tasks_controller.rb:

def add_attach 
    @task = Task.find(params[:id]) 
    # I don't know what goes here, not enough code posted 
    @task.save 
end 
+0

感谢您的帮助。 – Reddirt 2013-04-07 01:47:17