Sha256: f9c3a8ed19b4d3e7fbd1c569c377a9a2bda5cb6ed6f403246f719b0e69914c36
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
module Olivander module Resources module CrudController extend ActiveSupport::Concern included do include Effective::CrudController layout 'olivander/adminlte/main' def index if params[:term].present? index_search else super end end def index_search self.resources ||= resource_scope.all if resource_scope.respond_to?(:all) if resource_scope.respond_to?(:search_for) self.resources = self.resources.search_for(params[:term]) else k = resources.klass like_term = "%#{ActiveRecord::Base.sanitize_sql_like(params[:term])}%" fields = %w[name title description text].keep_if{ |field| k.respond_to?(field) } clauses = fields.map{ |field| "#{field} ilike '#{like_term}'" }.join(' or ') orders = fields.join(', ') self.resources = self.resources.where(clauses).order(orders) if clauses.length.positive? end end def permitted_params params.fetch(resource_klass.name.underscore.gsub('/', '_').to_sym, {}).permit! end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
five-two-nw-olivander-0.2.0.2 | app/controllers/concerns/olivander/resources/crud_controller.rb |