2012-07-05 98 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