LoginSignup
5
5

More than 5 years have passed since last update.

【初心者】modelでのscopeの使い方

Posted at

そもそもscopeってなんぞや。
scopeとは、メソッドを共通化もしくは部品化という役割を果たしてくれる素晴らしい機能です。

つまり、様々な箇所で何回も使うようなメソッドをscopeでくくることでデフォルトで定義している引数が変わったときや、参照元が変更した際に、各々のファイルに書いている同じメソッドを変える必要はなく、scope内のメソッドを変更すれば万事解決という利点があります。

具体的な書き方は以下の通りです。

hoge.rb
class Hoge < ActiveRecord::Base
  scope :fuga -> {where("user_id = 1")}
end
hoge_conntroller.rb
class HogeController < ApplicationController
  def index
    hoge = hoge.fuga
  end
end
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5