目標
開発環境
ruby 2.5.7
Rails 5.2.4.3
OS: macOS Catalina
前提
※ ▶◯◯ を選択すると、説明等が出てきますので、
よくわからない場合の参考にしていただければと思います。
【Ruby on Rails】検索機能(モデル、方法選択式)
こちらを実装した上で編集を加えていきます。
流れ
1 controllerの編集
2 viewの編集
controllerの編集
今回は曖昧検索に絞っています。
完全一致にしたい場合は、
where(name: @content)
となります。
app/controllers/searchs_controller.rb
class SearchsController < ApplicationController
def search
@content = params["content"]
@users = User.where('name LIKE ?', '%'+@content+'%')
@posts = Post.where('title LIKE ?', '%'+@content+'%')
end
end
viewの編集
app/views/search.html.erb
<% if @users.present? && @posts.present? %>
<h3>【Users,Postsモデルの検索結果】検索ワード:<%= @content %></h3>
<h4>・ユーザー名</h4>
<%= render 'users/index', users: @users %>
<h4>・投稿内容</h4>
<%= render 'posts/index', posts: @posts %>
<% elsif @users.present? && @posts.empty? %>
<h3>【Usersモデルの検索結果】検索ワード:<%= @content %></h3>
<h4>・ユーザー名</h4>
<%= render 'users/index', users: @users %>
<% elsif @users.empty? && @posts.present? %>
<h3>【Postsモデルの検索結果】検索ワード:<%= @content %></h3>
<h4>・投稿内容</h4>
<%= render 'posts/index', posts: @posts %>
<% else %>
<h3>検索ワード:<%= @content %>に該当はありません</h3>
<% end %>