2016-12-02 5 views
1

私はレールが初めてです。誰も私の範囲について教えてもらえますか?私はレールガイドを通過したが、それがどのように正確に動作するかを知りたいですか?前もって感謝します。ruby​​ on Scopeの使い方

答えて

5

スコープは、オブジェクトを取得およびクエリするためのクラスメソッドを追加します。

単純な例を考えてみましょう シャツという名前のテーブルが1つあります。あなたは赤い色のシャツが欲しいならば、あなたは、単にシャツモデルでこのよう

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

を行うことができます今、これは、あなたは、単にこれを行うことによって、赤シャツにアクセスすることができます:

Shirt.red_shirts.each do 
    #do_something 
end 

あなたは、クラスを使用することができますメソッドもありますが、少し余分な作業が必要です。スコープはスコープを返す方が好きなので、連鎖しやすいです。