Я сейчас работаю над менеджером приложений todo.
В моей модели задач есть описание и логическое значение, которое по умолчанию равно false.При нажатии на «готово», логическое значение должно переключиться на true.
Однако у меня есть ошибка undefined local variable or method `tasks'
Вот мой контроллер задач:
def index
@tasks = Task.all
@task = Task.new
end
def complete
@task = tasks.find(params[:id])
@task.completed = true
@task.save
redirect_to root_path
end
def incomplete
@task = tasks.find(params[:id])
@task.completed = false
@task.save
redirect_to root_path
end
и мой индекс:
<h3>Tâches à réaliser</h3>
<% @tasks.incomplete.each do |task| %>
<p><%= "#{task.description} | Créé le #{task.created_at.day}/#{task.created_at.month}" %>
<%= link_to "Done", complete_task_path(task), method: :put %><%= link_to ' Modifier', edit_task_path(task) %><%= link_to ' X', task, method: :delete, data: { confirm: 'Are you sure?' } %></p>
<% end %>
<h3>Tâches réalisées</h3>
<% @tasks.completed.each do |task| %>
<p><%= task.description %>|
<%= link_to "Undo", incomplete_task_path(task), method: :delete %></p>
<% end %>
и моймаршруты:
resources :tasks
root 'tasks#index'
match '/tasks/complete/:id' => 'tasks#complete', as: 'complete_task', via: :put
match '/tasks/complete/:id' => 'tasks#incomplete', as: 'incomplete_task', via: :delete
Я пытался изменить переменные, но эта ошибка все та же.
Кто-нибудь знает, что здесь не так?