onclick获取正确的数据

时间:2013-04-06 23:42:33

标签: ruby-on-rails

我有一个名为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的每个按钮。

知道我怎么能做到这一点吗?

谢谢!

1 个答案:

答案 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