teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/10/18 14:50

投稿

cameluby
cameluby

スコア891

answer CHANGED
@@ -1,5 +1,31 @@
1
+ 簡単な処理の流れを説明すると、以下のようになると思います
2
+ ```erb
3
+ # view
4
+ <%= text_field_tag :search, params[:search] %>
5
+ ```
1
- LIKEは「あいまい検索」です。
6
+ に入力した検索ワードの値を
7
+ ```erb
8
+ # view
9
+ <%= form_tag projects_path, :method => 'get' do %>
10
+ ```
11
+ の`projects_path`(projects_controllerのindexアクション)に飛ばす。
12
+
2
13
  ```ruby
14
+ # app/controllers/projects_controller.rb
15
+ @projects = Project.search(params[:search])
16
+ ```
17
+ projects_controllerのindexアクションで先程入力した検索ワードを`params[:search]`として取得し、
18
+ `Project`モデルのデータを取得する。
19
+
20
+ ```ruby
21
+ # app/models/project.rb
22
+ Project.where(['name LIKE ?', "%#{search}%"])
23
+ ```
24
+ モデルではコントローラーから渡された検索ワードを用いでレコードを取得する。
25
+
26
+
27
+ ちなみにLIKEは「あいまい検索」です。
28
+ ```ruby
3
29
  Project.where(['name LIKE ?', "%#{search}%"])
4
30
  ```
5
31