-1

行 7 でエラーを報告するこのメソッドがあります。コンソールに各行を個別に入力すると正常に実行されますが、deleteUserメソッド全体を呼び出すとエラーが発生します。

NoMethodError: nil:NilClass の未定義のメソッド「delete」

1 def self.deleteUser(user_id)
2  @user = User.where(:id => user_id).first
3 players = GameMember.where(:user_id => @user.id, :is_game_over => "FALSE")
4
5 if players.empty?
6  stat = Stat.where(:winners_id => @user.id).first
7  unless stat.nil?
8    stat.delete
9 end

  ....
4

1 に答える 1

3

あなたunless自身が必要endです:

if ...
  unless stat.nil?
    stat.delete
  end
end

フォームendを使用する場合にのみ、を省略できます。x unless y

if ...
  stat.delete unless stat.nil?
end

(メソッド自体には がありendませんが、コードからその部分を省略しただけだと思います)。

于 2013-06-06T18:31:18.447 に答える