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

В рубине 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