我有一个名为tasks的表的索引视图。在每一行上,我希望用户能够单击“编辑”或“添加附件”(添加附件)。
这是代码:
<% @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>
添加附件链接到用于添加附件的页面。为了让它正确地附加到特定任务,我使用flash来继续执行任务.id。
但是,onclick总是传递最后一个task.id,而不是包含该行的task.id的每个按钮。
知道我怎么能做到这一点吗?
谢谢!
答案 0 :(得分: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