🖥

Rails – ModelのscopeとControllerのメソッドチェーンでAND検索をする例

2023/09/01に公開
class User < ApplicationRecord
  scope :filter_name, ->(name) do
    return self if name.blank?
    where(name: name)
  end

  scope :filter_age, ->(age) do
    return self if age.blank?
    where(age: age)
  end
end
class UserController < ApplicationController
  def search
    users = User
              .all
              .filter_name(user_params[:name])
              .filter_age(user_params[:age])
    
    render json: { users: users }
  end

  private

  def user_params
    params.permit(:name, :age, :keyword)
  end
end

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2022-11-27

Discussion