ransackを用いて検索機能を実装しようとしているのですが、
検索ページにアクセスした段階で検索結果が表示されてしまいます。
おそらく検索画面にリクエストをした段階でSQLが走り、
インスタンス変数@resultsにデータが格納されるのが原因だとは思うのですが、
どうすれば検索結果が初期表示されなくなるのかわからず途方にくれています、、、
search.html.haml
%h1 | 物件検索 = search_form_for(@q, url:search_path) do |f| = label_tag '検索したい都道府県をチェックしてください' = f.collection_check_boxes :address_id_in, @address, :id, :perfecture = f.submit %h1 | 検索結果 %table - @results.each do |results| %tr %td = link_to "#{results.name}", results
products.controller.rb
def search @q = Product.ransack(params[:q]) @address = Address.all @results = @q.result(distinct: true) end
routes.rb
Rails.application.routes.draw do ActiveAdmin.routes(self) devise_for :users root 'products#index' get 'about', to: 'products#about' get 'search', to: 'products#search' resources :products, only: [:show] end
以下は検索フォームのViewです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。