我在我的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是nil ,但爲什麼這樣呢? @command是否是我的類中的所有方法都可見的實例變量?
P.S.要調用deleteuser方法,我必須通過userslist方法,所以@命令當然不是零。
@command不能提供給deleteuser方法的聲明之後,調用它的before_filter。您需要再次聲明 – Debadatt
但爲什麼不能@命令可用?它是一個實例變量,不是嗎? – zer0uno