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 1 year has passed since last update.

検索機能を実装する

Posted at

image.png
1:検索フォームを作成
index.html.erbを編集しましょう
検索の入力欄とボタンには、フォームを使います。

app/views/tweets/index.html.erb
<%= form_with(url: search_tweets_path, local: true, method: :get, class: "search-form") do |form| %>
 <%= form.text_field :keyword, placeholder: "投稿を検索する", class: "search-input" %>
 <%= form.submit "検索", class: "search-btn" %>
<% end %>
・form_withのtext_fieldとsubmitを使って検索窓と検索ボタンを作成した。
image.png

2:searchアクションのルーティングを設定
image.png

3:検索のメソッドをモデルに定義
 whereウェアーメソッド
 モデルが使用できる、ActiveRecordメソッドの1つです。
 モデル.where(条件)のように、引数部分に条件を指定することで、テーブル内の「条件に一致したレコードのインスタンス」を配列の形で取得できます。

引数の条件には、「検索対象となるカラム」を必ず含めて、条件式を記述します。
【例】whereメソッド
モデル.where('検索対象となるカラムを含む条件式')
条件式には'カラム名 > 5'やキーバリューの形でカラム名: 値などの記述が可能です。
条件と一致する値を持つレコードを、すべて取得します。

また、whereメソッドを連続して記述することによって、複数の条件に一致したレコードを取得することもできます。

「LIKEライク句」
LIKE句は、曖昧(あいまい)な文字列の検索をするときに使用するもので、whereメソッドと一緒に使います。

曖昧な文字列の検索とは、たとえば「1文字目に'a'という文字列が入ったデータ」や「最後の文字に'b'が入っているデータ」、「文字列の途中に'c'が入ったデータ」などを検索するものです。
whereメソッドとLIKE句を使用して検索の処理を作ります。
image.png

4:searchアクションをコントローラーに定義
image.png

5:検索結果画面のビューを作成
image.png

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?