2012-07-05 39 views
0

在这个模型的方法中,我需要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 
+0

你尝试没有'self'? – Tobas

回答

4

在ruby中,self用于类方法(与实例方法相反),它与其他语言中的静态方法等效。

例子:

class Wtf 
    def omg 
    end 
    def self.lol 
    end 
end 

Wtf.new.omg 
Wtf.lol 
+0

另请参阅先前询问的确切副本:http://stackoverflow.com/questions/386115/to-use-self-or-not-in-rails?rq=1 – nurettin