我为什么需要自己?

时间:2012-07-05 06:53:14

标签: ruby-on-rails ruby

我在这个模型的方法中需要self是否有特定原因?我正在从另一个控制器访问它。

  def self.search(query)
    if query
      find(:all, conditions: ['lower(first_name) LIKE ? OR lower(last_name) LIKE ?', "%#{query.downcase}%", "%#{query.downcase}%"])
    else
      find(:all)
    end
  end

1 个答案:

答案 0 :(得分:4)

在ruby中,self用于类方法(而不是实例方法),它们等同于其他语言中的静态方法。

示例:

class Wtf
    def omg
    end
    def self.lol
    end
end

Wtf.new.omg
Wtf.lol