module ExpressAdmin::StandardActions::ClassMethods
Public Instance Methods
infer_resource_class()
click to toggle source
# File lib/express_admin/standard_actions.rb, line 49 def infer_resource_class klass = nil if self.parent klass = self.parent.const_get(resource_name.classify) rescue nil end klass ||= resource_name.classify.constantize rescue nil klass end
inherited(base)
click to toggle source
# File lib/express_admin/standard_actions.rb, line 21 def inherited(base) base.class_eval <<-RUBY def #{base.resource_name}_params params.require(:#{base.resource_name}).permit! end RUBY base.class_eval do class_attribute :resource_class self.resource_class = infer_resource_class if self.resource_class.respond_to?(:commands) self.resource_class.commands.each do |command| define_command_method(command[:name].debang, command[:name]) end end end end
manages(a_resource_class)
click to toggle source
# File lib/express_admin/standard_actions.rb, line 41 def manages(a_resource_class) self.resource_class = a_resource_class end
resource_name()
click to toggle source
# File lib/express_admin/standard_actions.rb, line 45 def resource_name self.to_s.demodulize.gsub(/Controller$/, '').singularize.underscore end
Protected Instance Methods
define_command_method(action, command)
click to toggle source
# File lib/express_admin/standard_actions.rb, line 60 def define_command_method(action, command) define_method(action) do load_resource begin resource.send(command) respond_to do |format| format.html { redirect_to action: show_view } format.js { render status: :ok, body: nil } # maybe we should return enough info #to alter display of available or enabled commands? end rescue => e respond_to do |format| format.html { flash[:error] = e.to_s redirect_to action: show_view } format.js { render status: :bad_request, body: e.to_s } end end end end