【Ruby on Rails】Modelのscope, lambda について

Modelでscope, lambdaの使用例の覚書。

DBへのクエリ(where など)明示的に記載する際に使用する。

 

Modelでscope, lambdaの使用例

scope 引数なし

例:id = 1のレコードを取得する。


scope :where_id, -> { where(id: 1) }

 

scope 引数あり(可変)

次に、idを可変で取得する。


scope :where_id, -> (id) { where(id: ?, id) }

scope, lambda 引数あり(可変)

上記と同様にlambdaを使用する。

lambdaは無名関数の動きをします。


scope :where_id, lambda { |id_param| where(id: id_param) }

 

scopeのみの場合も、scopeとlambdaを使った場合も

改行も使えるため書き方用途など統一して書いたほうが良さそうですね。

 

何か参考になると幸いです(*^^*)