NoMethodError(未定义的方法)但定义了类方法

时间:2013-03-27 14:39:23

标签: ruby-on-rails

我创建了一个新类 Project ,它继承自 ActiveRecord :: Base 。我定义了一个名为 get_all 的类方法,我想在Controller中使用但是我得到了 NoMethodError(未定义的方法......)

型号:

class Project < ActiveRecord::Base

  def self.get_all
    find(:all)
  end

end

控制器:

class Controller < ApplicationController
  unloadable

  def index
    @projects = Project.get_all
  end
end

1 个答案:

答案 0 :(得分:1)

请注意,在rails 3中,不推荐使用find(:all)方法(不带任何选项),而是使用all方法。更多关于它:

http://m.onkey.org/active-record-query-interface

此外,我不知道你为什么要做这个功能,当你可以做的时候:

@projects = Project.all

就像chrisbulmer说的那样。

这应该有效:

项目模型

  def self.get_all
    Project.all
  end