Неопределенный метод при обновлении логического значения - PullRequest
0 голосов
/ 25 июня 2018

Я сейчас работаю над менеджером приложений 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

Я пытался изменить переменные, но эта ошибка все та же.

Кто-нибудь знает, что здесь не так?

1 Ответ

0 голосов
/ 25 июня 2018

Ошибка здесь довольно явная: вы вызываете amethod или переменную, которая не была определена.

Посмотрите на первую строку в ваших complete и incomplete методах:

@task = tasks.find(params[:id])

tasks нигде не определено, отсюда и ошибка.Метод #find в ActiveRecord является методом класса, поэтому вы хотите сделать

@task = Task.find(params[:id])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...