この記事では、Rails 5.2.3を使用した内容となっています。
WEBアプリを作成する上で必須となる機能なので、活用しましょう!
全3回にわけて記載しています。 これは、3/3ページです。
下記のリンク先が検索フォームに関する全3回のページです。
[検索機能実装ができる 1 / 3ページ]
(https://qiita.com/NishiguchiHiroki/items/9a8c55e3c248f565da1f)
検索機能実装ができる 2 / 3ページ
##概要
・7つのアクションで検索機能を実装する
・コントローラーを作成する
・コントローラーを編集する
・ルーティングを設定する
・ビューを作成する
####7つのアクションで検索機能を実装する
可読性やMVCの観点から、7つのアクションを利用して開発する方が推奨されている
書き方になりますので、7つのアクションで仕上げるのがいいと思います。
####コントローラを作成する
1 | # 名前空間(tweets)を付けてコントローラーを作成する |
---|---|
2 | $ rails g controller tweets::searches |
#####名前空間(namespace) | |
同様のクラス名を名付けたクラスであってもそれらを区別することができます。 | |
分割するために付けられる識別名を名前空間と呼びます。 |
####コントローラーを編集する
class Tweets::SearchesController < ApplicationController
def index
@tweets = Tweet.search(params[:keyword])
end
end
####ルーティングを設定する
Rails.application.routes.draw do
devise_for :users
root to: 'tweets#index'
namespace :tweets do
resources :searches, only: :index
end
resources :tweets do
resources :comments, only: :create
collection do # この行は削除する
get 'search' # この行は削除する
end # この行は削除する
end
resources :users, only: :show
end
注意点として、必ずnamespaceメソッドの記述は、resources :tweets do
よりも上に書きましょう
コードは上から読み込まれるので、①検索 ⇨ ②検索内容を探すの順番と
して覚えておきましょう。
#####最後にフォームのPrefixの指定はお間違えなく!