2013-07-22 6 views
0

Я пытаюсь реализовать простую функцию «Отметить как полную» в списке задач, но с трудностями на основе настройки моего приложения. Я начинаю учебник, в котором задачи, вложенные в список, я собираюсь немного по-другому, но не могу понять правильный маршрут.Отметить задачу полностью

У меня нет гнездящихся, но простых ассоциаций, то есть у пользователя есть много задач и задач, принадлежащих пользователю. У меня есть столбец завершена (булево) в моей таблице задач

Полное действие в мой контроллер задач

def complete 
@task = current_user.tasks.find(params[:id]) 
@task.completed = true 
@task.save 
redirect_to tasks_path 
end 

Маршрут файл

match '/tasks/complete' => 'tasks#complete' 

Index Просмотр

<% current_user.tasks.each do |task| %> 
<%= task.description %> | <%= link_to "Complete", complete_task_path(task) %> 
<% end %> 

Любые идеи ?

ответ

0

Попробуйте сделать линию в файле маршрута выглядеть следующим образом:

match '/tasks/complete' => 'tasks#complete', as: 'complete_task' 

Обратите внимание, что это может делать то, что вы ищете, но будет небезопасным, так как HTTP GET запросы не получают никакой защиты по умолчанию от межсайтовые запросы подделки. Кроме того, вообще говоря, вы хотите использовать HTTP GET-запросы для чтения, а не писать/обновлять, как вы здесь делаете. Вероятно, более целесообразно использовать HTTP PUT. Вы можете настроить свои маршруты так:

match '/tasks/complete' => 'tasks#complete', as: 'complete_task', via: :put 

... а затем сделать что-то вроде этого:

<%= task.description %> | <%= link_to "Complete", complete_task_path(task), method: :put %> 

Я не тестировал выше точно, но вы должны получить идут в правильном направлении ,

+0

Еще раз спасибо Крис в настоящее время получает эту ошибку Не удалось найти Задание с id = complete [WHERE "tasks". "User_id" = 1] – Joshua

+0

О, да, это было бы проблемой. Я думаю, вы действительно хотите иметь что-то подобное на своих маршрутах.rb: match '/ tasks/complete /: id' => 'tasks # complete', as: 'complete_task', через:: put И вы может понадобиться переместить эту строку, чтобы быть до ресурсов: задачи, если у вас есть это в файле маршрутов, а также ... –

+0

Работал как шарм, радует Криса. – Joshua

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