调用方法时的方法错误,但不是单行

时间:2013-06-06 18:14:13

标签: ruby ruby-2.0

我有这种方法在第7行报告错误。当我在控制台中单独输入每一行时运行正常,但是当我调用整个deleteUser方法时出现错误:

  

NoMethodError:nil的未定义方法`delete':NilClass

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

  ....

1 个答案:

答案 0 :(得分:3)

您的unless需要自己的end

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

使用end表单时,您只能省略x unless y

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

(该方法本身缺少end,但我假设您刚从代码中省略了该部分。)