これまでに作った機能について簡単にまとめていく。

今回は、

検索機能の作成

前提条件

一覧画面が作成されていること

使用モデル

Blogモデル

  カラム データ型
1 title string
2 content text

スコープの作成

app/models/blog.rb
今回は部分一致検索を実装

class Blog < ApplicationRecord
  scope :search_by_name, -> (search){where(['name LIKE ?', "%#{search}%"}
end

検索フォームの作成

app/views/blogs/index.html.erb

<%= form_with(model: Blog.new, url: blogs_path, method: :get, local: true) do |f| %>
  <%= f.label :name %>
  <%= f.text_field :name %>
  
  <%= f.submit '検索', id: 'search_button' %>
<% end %>

コントローラーの編集

app/controllers/blogs_controller.rb

class BlogsController < ApplicationController
  
  def index
    if params[:blog]
      @blogs = Blog.search_by_name(params[:blog][:name])
    else
      @blogs = Blog.all
    end
  end
 
end

以上で作成完了