class CmAdmin::ResourceController
def cm_custom_method(params)
def cm_custom_method(params) scoped_model = "CmAdmin::#{@model.name}Policy::Scope".constantize.new(Current.user, @model.name.constantize).resolve resource_identifier respond_to do |format| if @action.action_type == :custom if @action.child_records if request.xhr? format.html { render partial: '/cm_admin/main/associated_table' } else format.html { render @action.layout } end elsif @action.display_type == :page data = @action.parent == "index" ? @ar_object.data : @ar_object format.html { render @action.partial } else ar_object = @action.code_block.call(@ar_object) if ar_object.errors.empty? redirect_url = @model.current_action.redirection_url || @action.redirection_url || request.referrer || "/cm_admin/#{@model.ar_model.table_name}/#{@ar_object.id}" format.html { redirect_to redirect_url, notice: "#{@action.name.titleize} is successful" } else error_messages = ar_object.errors.full_messages.map{|error_message| "<li>#{error_message}</li>"}.join format.html { redirect_to request.referrer, alert: "<b>#{@action.name.titleize} is unsuccessful</b><br /><ul>#{error_messages}</ul>" } end end end end end