Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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

No Answers yet.

Your answer might help someone💌