Я следующие два метода в моей CommandsControllerэкземпляр переменного Rails
class CommandsController < ApplicationController
.
.
.
def userslist
@command = Command.find_by(id: params[:id])
@users_list = @command.users.paginate(page: params[:page], per_page: 10)
end
def deleteuser
user = User.find_by(id: params[:id])
user.commands.destroy(@command)
flash[:success] = "Utente eliminato dalla lista con successo"
redirect_to list_path(@command)
end
.
.
.
end
Когда я исполню метод deleteuser я получаю следующее сообщение об ошибке: Command(#31369720) expected, got NilClass(#19349600)
связанных с выстилаю user.commands.destroy(@command)
, что означает, что @command равен нулю , но почему это так? Не @command переменная экземпляра, видимая всеми методами в моем классе?
P.S. Чтобы вызвать метод deleteuser, мне нужно пройти через метод userslist, поэтому @command, конечно, не ноль.
@command не могут быть доступны для метода deleteuser. вам нужно снова объявить – Debadatt
, но почему не удается @command быть доступным? это переменная экземпляра, не так ли? – zer0uno