This Gem provides automatic saving your filtered Ransack gem params into Rails session. It also autoloads params from session to your search forms.
Add this line to your application's Gemfile:
gem 'ransack_memory'
Add this line to your basic controller (typically ApplicationController):
class ApplicationController < ActionController::Base
include RansackMemory::Concern # insert this line
before_action :authenticate_user! # only if you use Devise gem
before_action :save_and_load_filters # insert this line after Devise auth before filter (Devise gem is not necessary)
end
Add this in your views where you have search forms. This is clear button, which deletes ransack memory sessions.
<%= clear_filter %>
You can pass any of link attributes:
<%= clear_filter, title: 'Clear Filter', class: 'btn btn-primary', data: {confirm: 'Really?', my_data: 'something'} %>
Create file in config/initializers/ransack_memory.rb with this content:
RansackMemory::Core.config = {
param: :q # this means the default Ransack param name for searching. You can change it
}
Or you can generate this config file by running rails generate ransack_memory
in console.
When you have an issue with Kaminari gem, that you can't go back to the first page, update your kaminari view in app/views/kaminari/_first_page.html.erb
:
<%= link_to_unless current_page.first?, t('views.pagination.first').html_safe, url_for(params.merge({page: 1, cancel_filter: nil})), remote: remote, class: 'btn btn-secondary' %>