0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

rails 検索機能の実装

Posted at

1.ルーティングの指定

ルーティングの中に検索したいテーブルの中にserchを記述します。以下を例とします。collectionを使うことによって生成されるルーティングのURLと実行されるコントローラーを任意でカスタムできます。

config/routes.rb
resources :posts do
      collection do
        get 'search'
      end
  end

2.モデルの指定

モデルを指定します。以下のようにwhereメソッドとLIKE句を使い、検索をかけたいカラムを記述します。

post.rb
def self.search(search)
        if search != ""
          Post.where('text LIKE(?)', "%#{search}%" )
        else
          Post.all
        end
      end

3.この他に検索のカラムを追加したいとき

もしいくつかのカラムを検索につかしたいときは、orを使い"%#{search}%"以下のように記述しましょう。

post.rb
def self.search(search)
        if search != ""
          Post.where('text LIKE(?) or title LIKE(?)', "%#{search}%", "%#{search}%")
        else
          Post.all
        end
      end

#4 コントローラーにserchアクションを記述
コントローラーにsearchアクション記述をします。この記述でバックエンドの記述は終了です。あとはビューに反映させるだけなので、お好みの形でデザインしましょう。

controllers/posts_controller.rb
def search
 @post = Post.search(params[:keyword])
end

5.最後に

検索機能自体は他のアクションと同じように設定できますので、モデルの指定だけ特徴をつかめば簡単に実装できます。是非実装してみましょう。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?