Sha256: 241d290302a3a48d0072be005c1368f0d643c2c67a0dcf25f51f9dc735f7eb7a
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
module Cmor::Seo class ItemsController < Cmor::Core::Backend::ResourcesController::Base include Rao::ResourcesController::ActsAsPublishedConcern def self.resource_class Cmor::Seo::Item end module AutocompleteConcern extend ActiveSupport::Concern def autocomplete_resource resource_class_name = params[:resource_class_name] term = params[:term] || '' resource_class = resource_class_name.constantize autocomplete_options = autocomplete_options_for(resource_class_name) if autocomplete_options.present? resources = autocomplete_options[:scope].call(term).all results = resources.collect do |resource| { id: resource.send(autocomplete_options[:id_method]), text: resource.send(autocomplete_options[:text_method]) } end else results = [] end respond_to do |format| format.json do render json: { results: results } end end end private def autocomplete_options_for(resource_class_name) Cmor::Seo::Configuration.items_resource_autocomplete_options[resource_class_name] end end include AutocompleteConcern private def load_collection_scope super.eager_load(:meta_tags) end def permitted_params params.require(:item).permit(:resource_type, :resource_id, :path, :published, meta_tags_attributes: [:id, :name, :content, :published, :_destroy]) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cmor_seo-0.0.40.pre | app/controllers/cmor/seo/items_controller.rb |