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