为什么我无法从控制器内部访问模型中定义的此方法?

时间:2011-05-06 23:09:44

标签: ruby-on-rails ruby ruby-on-rails-3 debugging

我的视频控制器中有这种方法:

def notifications
  erase_notification_count
end

它调用我的用户模型中定义的erase_notification_count方法:

def erase_notification_count
  new_notification_count += (self.notifications.count * (-1))
end

这是我得到的错误:

NameError in VideosController#notifications

undefined local variable or method `erase_notification_count' for #<VideosController:0x102f0fed0>

为什么我收到此错误?我该如何解决?

1 个答案:

答案 0 :(得分:5)

您在User模型上定义了erase_notification_count,这意味着您必须在User对象上调用它。您正试图直接在VideosController对象上调用它。