Just started using Ransack and i'm loving it. But desperate to know how to start with a blank index, with no results? forcing the user to use the search form. Here what the controller looks like so far.
meals_controller.rb
 def index
    @search = Meal.search(params[:q])
    @meals = @search.result
 end
edit -
Some how this worked and i'm not sure how
meals_controller.rb
 class MealsController < ApplicationController
 before_filter :set_search
 def index
   if params[:q].blank?
     @q = Meal.none.search
   else
     @q = Meal.search params[:q]
   end
     @meals = @q.result
 end
 def set_search
  @search=Meal.search(params[:q])
 end  
end
I don't like the use of a blank scope as you're querying unnecessarily.
I use the following approach instead:
# If no search params, default to empty search
if params[:q] && params[:q].reject { |k, v| v.blank? }.present?
  @q = User.search(params[:q])
  @users = @q.result
else
  @q = User.search
  @users = []
end
Then you can still use @q for your search_form_for in the view but without the querying by default.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With