2016-12-02 2 views

Antwort

5

Scope fügt eine Klassenmethode zum Abrufen und Abfragen von Objekten hinzu.

Betrachten Sie ein einfaches Beispiel Sie haben eine Tabelle namens Shirts mit Spalte Farbe und so viele. Nun, wenn Sie die T-Shirts mit roter Farbe wünschen, dann können Sie einfach so tun, in Hemd Modell

class Shirt < ActiveRecord::Base 
    scope :red_shirts, -> { where(color: red) } 
end 

jetzt dies ermöglicht es Ihnen, indem Sie einfach tut dies rote Hemden zuzugreifen:

Shirt.red_shirts.each do 
    #do_something 
end 

Sie Klasse verwenden könnten Methode auch, aber es braucht ein bisschen mehr Arbeit. Bereiche ziehen es vor, Bereiche zurückzugeben, sodass sie einfach miteinander verkettet werden können.