當我們的查詢語法落落長的時候(ex. User.where(gender: “female”).where(age>20).limit(10) or Product.where(price>100))我們可以用scope把方法寫在Model中,以簡化程式碼、並使其更容易維護。
不但可以scope來簡化我們的程式碼,使用class method也有一樣的效果,只是兩者的差異在於,如果程式碼更複雜時,我們會傾向用class method來寫。
另外,如果我們想要讓所有查詢都符合某個條件的話,我們可以使用default_scope(ex. default_scope { limit(20)} )。