# Este cocdigo fica em app/controllers/members_controller.rb class MembersController < ApplicationController before_action :default_filters # Estou usando a gem has_scope has_scope :page, :default => 1 # GET /members def index authorize :sponsor # usando a gem pundit respond_with collection end # aqui estão minhas actions, o que não vem ao caso mostrar agora private # Definindo os valores padrão para meus filtros def default_filters params[:filter] ||= {} params[:filter][:document_status] = params[:filter].fetch( :document_status, (current_user.employee? ? DocumentStatusFilterValues::UNVERIFIED : DocumentStatusFilterValues::BOTH) ) params[:filter][:card_photo] = params[:filter].fetch( :card_photo, BooleanFilterValues::BOTH ) params[:filter][:proof_residence_photo] = params[:filter].fetch( :proof_residence_photo, BooleanFilterValues::BOTH ) params[:filter][:identification_photo] = params[:filter].fetch( :identification_photo, BooleanFilterValues::BOTH ) end # Only allow a trusted parameter "white list" through. def filter_params return {} if params[:filter].blank? params .require( :filter ) .permit( policy(:member).permitted_filter_attributes ) end def resource_class @resource_class ||= Sponsor end helper_method :resource_class def resource_name @resource_name ||= :sponsor end helper_method :resource_name def resource @member ||= Sponsor.find(params[:id]) end helper_method :resource def filter @filter ||= MemberFilter.new filter_params end helper_method :filter def collection @members ||= apply_scopes( filter.collection ) end helper_method :collection end