scopeメソッドとは?
⇨ActiveRecordの機能の一つで自分のオリジナルのSQLを作成できメソッドのように扱える。
ActiveRecordとは?
⇨メソッドのようにSQLが扱える機能。例find_byメソッドやcreateメソッドなど。
例 データベースからデータを取得する.
Active Record
User.find_by(name: "コナン")
↓発行されるSQL
SELECT * FROM users WHERE name = 'コナン' LIMIT 1;
使い方
コントローラーの中で↓のようにして使う
モデル.スコープメソッド Blog.published
app/models/blog.rbにpublishメソッドを定義する
class Blog < ApplicationRecord scope :published, -> { where(published: true) } end
↑でBlogモデル内のpublishedカラムがtrueのものを取得するという意味。