ransackで検索結果が表示されない
Q&A
Closed
解決したいこと
ransackで検索結果が表示されないこと。
https://gyazo.com/376813aa3d81a93cf8ba338e0e2285f2
のようにプルダウンでキーワードを選び、そのキーワードを含んだ情報を取得して表示させたい。
例)
Ruby on RailsでなWebアプリをつくっています。
ransackで検索結果を表示させようとする実装中にエラーが発生しました。
解決方法を教えて下さい。
発生している問題・エラー
該当するソースコード
app/controllers/classifications_controller.rb
class ClassificationsController < ApplicationController
before_action :search_category, only: [:index, :search]
def index
@user = current_user
@items = @user.items
@wants = @user.wants
end
def search
@item_results = @classification_item.result
@want_results = @classification_want.result
# @results= @classification.result
end
def show
end
private
def search_category
# @classification= Classification.ransack(params[:q])
@classification_item = Item.ransack(params[:q]) # 検索オブジェクトを生成
@classification_want = Want.ransack(params[:q]) # 検索オブジェクトを生成
end
end
app/views/classifications/index.html.erb
<div class="search-data">
<h3>商品検索</h3>
<%= search_form_for @classification_item, url: classifications_search_path do |f| %>
<%= f.label :categpry_id_eq, 'Existの商品検索' %>
<%= f.collection_select :category_id_eq, Category.all, :id, :name %>
<%= f.submit '検索' %>
<% end %>
<br>
<%= search_form_for @classification_want, url: classifications_search_path do |f| %>
<%= f.label :categori_id, 'Wishの商品検索' %>
<%= f.collection_select :categori_id, Categori.all, :id, :name %>
<%= f.submit '検索' %>
<% end %>
</div>
下記のshow.html.erbが、検索結果を表示するページ、3行目のeach文で、@item_resultsがないためeachを使えないと怒られている。
app/views/classifications/show.html.erb
<h1>検索結果</h1>
<%# <% if @item_results.present? %> %>
<% @item_results.each do |result| %>
<td>
<br>
<li>
<%= result.thing %>
<%= result.category.name %>
</li>
<% end %>
<%# <% else %>
該当する商品はありません
<%# <% end %>
<br>
<%# <% if @want_results.present? %> %>
<% @want_results.each do |result| %>
<td>
<br>
<li>
<%= result.thing %>
<%= result.categori.name %>
</li>
<% end %>
<%# <% else %>
該当する商品はありません
<%# <% end %>
自分で試したこと
https://qiita.com/AKI3/items/0a47f9536413b4436389
を参考にして検索フォームから検索結果を示すページまで作成した。しかし、確実に存在する情報も、show.html.erbで表示できなかった。問題があるとしたら、index.html.erbの4~5,10~11行目の検索コードだと思う。プルダウンで選択したキーワードと、DB に存在するキーワードとでうまく一致していないのではないかと思う。これを解決させようとさまざまな記事を参照したが理解できなかった。
教えてください🙇♀️
0