app/controllers/administrate/application_controller.rb in administrate-0.9.0 vs app/controllers/administrate/application_controller.rb in administrate-0.10.0

- old
+ new

@@ -5,20 +5,20 @@ def index search_term = params[:search].to_s.strip resources = Administrate::Search.new(scoped_resource, dashboard_class, search_term).run - resources = resources.includes(*resource_includes) if resource_includes.any? + resources = apply_resource_includes(resources) resources = order.apply(resources) resources = resources.page(params[:page]).per(records_per_page) page = Administrate::Page::Collection.new(dashboard, order: order) render locals: { resources: resources, search_term: search_term, page: page, - show_search_bar: show_search_bar? + show_search_bar: show_search_bar?, } end def show render locals: { @@ -68,12 +68,15 @@ } end end def destroy - requested_resource.destroy - flash[:notice] = translate_with_resource("destroy.success") + if requested_resource.destroy + flash[:notice] = translate_with_resource("destroy.success") + else + flash[:error] = requested_resource.errors.full_messages.join("<br/>") + end redirect_to action: :index end private @@ -96,19 +99,19 @@ def records_per_page params[:per_page] || 20 end def order - @_order ||= Administrate::Order.new(params[:order], params[:direction]) + @order ||= Administrate::Order.new(params[:order], params[:direction]) end def dashboard - @_dashboard ||= dashboard_class.new + @dashboard ||= dashboard_class.new end def requested_resource - @_requested_resource ||= find_resource(params[:id]).tap do |resource| + @requested_resource ||= find_resource(params[:id]).tap do |resource| authorize_resource(resource) end end def find_resource(param) @@ -117,12 +120,14 @@ def scoped_resource resource_class.default_scoped end - def resource_includes - dashboard.association_includes + def apply_resource_includes(relation) + resource_includes = dashboard.association_includes + return relation if resource_includes.empty? + relation.includes(*resource_includes) end def resource_params params.require(resource_class.model_name.param_key). permit(dashboard.permitted_attributes). @@ -145,11 +150,11 @@ to: :resource_resolver helper_method :namespace helper_method :resource_name def resource_resolver - @_resource_resolver ||= + @resource_resolver ||= Administrate::ResourceResolver.new(controller_path) end def translate_with_resource(key) t( @@ -158,14 +163,14 @@ ) end def show_search_bar? dashboard.attribute_types_for( - dashboard.collection_attributes + dashboard.collection_attributes, ).any? { |_name, attribute| attribute.searchable? } end - def show_action?(action, resource) + def show_action?(_action, _resource) true end helper_method :show_action? def new_resource