1
2

More than 3 years have passed since last update.

検索機能を実装するンゴ ❏Rails❏

Last updated at Posted at 2019-12-03

ransackを使わない簡易検索機能です。

ルーティング

routes.rb
Rails.application.routes.draw do
  resources :tweets do
    collection do
      get 'search'
    end
  end
end

実際生成されるルーティングがこちら。

ターミナル
       Prefix Verb     URI Pattern                  Controller#Action
search_tweets GET      /tweets/search(.:format)     tweets#search

ビュー

検索フォームを好きなところへ配置。

search.html.haml
= form_with(url: search_tweets_path, local: true, method: :get) do |form|
  = form.text_field :keyword
  = form.submit

コントローラー

app/controllers/tweets_controller.rb
def search
  @tweets = Tweet.where('text LIKE(?)', "%#{params[:keyword]}%").page(params[:page]).per(3)
end

ページネーションで3件ごとに取ってきています。
.limit(3)とかで上から3件取ってきてもいいですね。

whereの中身はあいまい検索といいます。
where('カラム名 LIKE(?)', "検索したいワード")
検索ワードに引っかかるものを取ってきます。

%a%とするとaを含むもの
%bとするとbから始まるもの

今回はフォームに入力されたワードを含むツイートが表示されます。



ではまた!

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2