2013-04-06 2 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> 

Надстройка Приложить ссылки на страницу для добавления вложений. Чтобы он правильно привязывался к конкретной задаче, я использую flash для переноса задачи.

Но onclick всегда передает последнюю task.id вместо каждой кнопки, содержащей task.id для этой строки.

Любая идея, как я мог это сделать?

Спасибо!

ответ

1

Я думаю, что ваш «Добавить Attach» ссылка будет выглядеть так:

<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

Смежные вопросы