app/controllers/alchemy/custom/model/admin/base_controller.rb in alchemy-custom-model-0.1.6 vs app/controllers/alchemy/custom/model/admin/base_controller.rb in alchemy-custom-model-0.1.7

- old
+ new

@@ -1,9 +1,11 @@ module Alchemy::Custom::Model module Admin class BaseController < Alchemy::Custom::Model.admin_controller_class + class_attribute :method_for_show, instance_accessor: false + before_action :authorize_resource before_action :clean_slug, only: [:create, :update] before_action :set_language, unless: -> {params[:language_id].nil?} before_action :load_object, except: :index @@ -56,11 +58,25 @@ after_unsuccessful_create end end + def show + if @obj.respond_to? self.class.method_for_show + @objects = @obj.send(self.class.method_for_show.to_sym) + @objects = @objects.accessible_by(current_ability) + @objects = @objects.page(params[:page]). + per(params[:per_page] || + (base_class::DEFAULT_PER_PAGE if base_class.const_defined? :DEFAULT_PER_PAGE) || + 25) + instance_variable_set "@#{self.class.method_for_show.to_s.underscore.downcase.pluralize}", @objects + else + @objects = base_class.none + end + end + class << self class_attribute :parent_model_name, :parent_klass, :parent_find_method def belongs_to(model_name, options = {}) @@ -93,11 +109,11 @@ def base_class raise '-- Override Method base_class' end - def url_namespace(obj=base_class) + def url_namespace(obj = base_class) [:admin, obj] end def load_object if params[:id] @@ -168,21 +184,24 @@ set_alchemy_language(params[:language_id]) end def load_parent - unless self.class.parent_model_name.blank? - @parent = self.class.parent_klass. - find_by("#{self.class.parent_find_method.to_s}": params["#{parent_model_name_demodulized}_id"]) + if params["#{parent_model_name_demodulized}_id"] + unless self.class.parent_model_name.blank? + @parent = self.class.parent_klass. + find_by("#{self.class.parent_find_method.to_s}": params["#{parent_model_name_demodulized}_id"]) - instance_variable_set("@#{parent_model_name_demodulized}", @parent) + instance_variable_set("@#{parent_model_name_demodulized}", @parent) + end end end def parent_model_name_demodulized self.class.parent_model_name. classify.demodulize.underscore end + end end end