Module: RansackMemory::Concern
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/controllers/concerns/ransack_memory/concern.rb
Instance Method Summary collapse
-
#clear_sessions ⇒ Object
controller method, useful when you want to clear sessions when sign into another user.
- #save_and_load_filters ⇒ Object
Instance Method Details
#clear_sessions ⇒ Object
controller method, useful when you want to clear sessions when sign into another user
49 50 51 52 53 |
# File 'app/controllers/concerns/ransack_memory/concern.rb', line 49 def clear_sessions session.keys.each do |key| session.delete(key) if key =~ /ranmemory_/ end end |
#save_and_load_filters ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/controllers/concerns/ransack_memory/concern.rb', line 5 def save_and_load_filters session_key_base = "ranmemory_#{controller_name}_#{action_name}_#{request.format.symbol.to_s}" # permit search params params[::RansackMemory::Core.config[:param]].permit! if params[::RansackMemory::Core.config[:param]].present? && params[::RansackMemory::Core.config[:param]].respond_to?(:permit) # cancel filter if button pressed if params[:cancel_filter] == "true" session["#{session_key_base}"] = nil session["#{session_key_base}_page"] = nil session["#{session_key_base}_per_page"] = nil end # search term saving session["#{session_key_base}"] = params[::RansackMemory::Core.config[:param]] if params[::RansackMemory::Core.config[:param]].present? # page number saving session["#{session_key_base}_page"] = params[:page] if params[:page].present? # per page saving session["#{session_key_base}_per_page"] = params[:per_page] if params[:per_page].present? # search term load params[::RansackMemory::Core.config[:param]] = session["#{session_key_base}"].presence # page number load params[:page] = session["#{session_key_base}_page"].presence # per page load params[:per_page] = session["#{session_key_base}_per_page"].presence # set page number to 1 if filter has changed if (params[::RansackMemory::Core.config[:param]].present? && session[:last_q_params] != params[::RansackMemory::Core.config[:param]]) || (params[:cancel_filter].present? && session["#{session_key_base}_page"] != params[:page]) params[:page] = nil session["#{session_key_base}_page"] = nil end session[:last_q_params] = params[::RansackMemory::Core.config[:param]] # session[:last_page] = params[:page] end |