Rails5で検索機能を実装してみた
以前からやってみたいと思っていた、検索機能を実装してみました。
環境
ruby 2.3.1
rails 5.1.5
概要
usersテーブル(カラムはname、emailだけ)に対し、nameであいまい検索。
コード
User.rb
class User < ApplicationRecord
validates :name, presence: true
validates :email, presence: true
scope :search_by_name, ->(name) {
where("name like '%#{name}%'")
}
end
users_controller.rb
class UsersController < ApplicationController
def index
@users = User.all
if params[:name].present?
@users = @users.search_by_name params[:name]
end
end
//省略
private
def user_params
params.require(:user).permit(:name, :email)
end
end