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

質問編集履歴

1

追加

2020/01/25 12:51

投稿

Boston12121
Boston12121

スコア10

title CHANGED
@@ -1,1 +1,1 @@
1
- 【Rails】autocompleteの候補データをテーブルから引っ張ってくる方法
1
+ 【Rails】rails4-autocompleteの実装でテーブル内の候補データが表示されない
body CHANGED
@@ -1,70 +1,55 @@
1
- autocompleteの候補データテーブルから引っ張ってきてきたいのですが候補が表示されずっています
1
+ rails4-autocompleteを実装したいのですが、テーブル内の候補データが表示されず原因がわかりせん
2
- エラーは出ていませんが、jqueryが反映されていないんでしょうか。
3
- googleコンソールにもエラーや!マークはでていません。
4
- 何が原因で反映されないのかわかりますでしょうか。何度も同じような質問をして申し訳ございません。
5
- 参考にしている記事
6
- https://qiita.com/RyosukeKawamura/items/5fd4f553c7b69c7f0d12
2
+ 候補データとなるデータは モデル名:idol カラム名:idolnameです。すでに候補データはテーブルにseedファイルで格納しています。
7
3
 
4
+ curl 'http://localhost:3000/images/autocomplete_idol_idolname'を実行してみると[]しか出ず、取得できていないっぽいです。
8
5
 
6
+ 参考記事:[https://techblog.kyamanak.com/entry/2018/06/03/170603](https://techblog.kyamanak.com/entry/2018/06/03/170603)
9
7
 
8
+ 環境
10
- ```ここに言語を入力
9
+ Rails 5.2.4.1
11
- controllers/images_controller.rb
12
10
 
13
- autocomplete :idol, :idol_name
11
+ gem
14
- def autocomplete_idol_idol_name
12
+ rails4-autocomplete ※rails4とありますが、rails5でも使えるそうです。
15
- term = params[:term]
16
- idols = Idol.scope_name(term)
17
- render json: idols.map { |idol| { id: idol.id, label: idol.method_name, value: idol.method_name } }
18
- end
19
13
 
20
14
 
15
+ application.js
16
+ ```ここに言語を入力
17
+ //= require rails-ujs
18
+ //= require activestorage
19
+ //= require turbolinks
20
+ //= require_tree .
21
+ //= require bootstrap
22
+ //= require init_fancy
23
+ //= require jquery-ui
24
+ //= require autocomplete-rails
21
25
  ```
26
+
27
+ application.controller.rb
22
28
  ```ここに言語を入力
23
- config/routes.rb
24
-
25
- resources :images do
26
- collection do
27
- get :autocomplete_idol_idol_name
29
+ autocomplete :idol, :idolname, full: true
30
+ ```
31
+ images_controller.rb
32
+ ```ここに言語を入力
33
+ def index
34
+ : params[:user][:name]
35
+ if params[:idol] && params[:idol][:idolname]
36
+ idol_idolname = params[:idol][:idolname]
37
+ @images = Idol.where("idolname LIKE '%#{idol_idolname}%'")
28
- end
38
+ else
39
+ @images = Idol.all
29
40
  end
41
+ end
30
42
  ```
31
- ```ここに言語を入力
32
- views/index.html.erb
33
43
 
34
- <%= form.autocomplete_field :idol_idol_name, autocomplete_idol_idol_name_images_path, id_element: '#image_idol_id' %>
44
+ images/index.html.erb
35
45
 
46
+ ```ここに言語を入力
47
+ <%= autocomplete_field :idol_idolname, nil, autocomplete_idol_idolname_images_path %>
36
48
  ```
49
+ routes.rb
37
50
  ```ここに言語を入力
51
+ resources :images do
38
- layouts/application.html.erb
52
+ get :autocomplete_idol_idolname, on: :collection
53
+ end
39
54
 
40
- <head>
41
- <div id="headerbg">
42
-
43
- <div id="header">
44
- <!--<img src="../assets/title.jpg">-->
45
- <title>title</title>
46
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
47
-
48
- <%= csrf_meta_tags %>
49
- <%= csp_meta_tag %>
50
-
51
- <script src="//code.jquery.com/jquery-1.10.2.js"></script>
52
- <!--lightbox-->
53
- <link href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.7.1/css/lightbox.css" rel="stylesheet">
54
- <script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.7.1/js/lightbox.min.js" type="text/javascript"></script>
55
- <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
56
-
57
- <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
58
- <!--<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>-->
59
- <!-- Stylesheets -->
60
- <link rel="stylesheet" href="assets/style.css"/>
61
- </div>
62
- </div>
63
-
64
- <!--js読み込み-->
65
- <%= javascript_include_tag 'acc.js' %>
66
-
67
- </head>
68
-
69
-
70
55
  ```