Class: CrudController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- CrudController
- Defined in:
- app/controllers/crud_controller.rb
Instance Method Summary collapse
- #action ⇒ Object
- #autocomplete ⇒ Object
- #create ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #new ⇒ Object
- #query ⇒ Object
- #show ⇒ Object
Instance Method Details
#action ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'app/controllers/crud_controller.rb', line 74 def action @record = @model.find(@id) :create_or_update, @record if respond_to?(:current_usuario) if @model.method_defined?(params[:acao]) if @record.send(params[:acao]) flash.now[:success] = "Ação #{params[:acao]} efetuada com sucesso." else flash.now[:error] = "Erro ao tentar executar a ação #{params[:acao]}." end index else @titulo = @record.to_s @texto = params[:acao] render partial: "/#{@model.name.underscore.pluralize}/#{params[:acao]}" if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial? end end |
#autocomplete ⇒ Object
156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'app/controllers/crud_controller.rb', line 156 def autocomplete @model = Module.const_get(params[:model].camelize) :read, @model if respond_to?(:current_usuario) parametros = {} parametros["#{params[:campo]}_#{params[:tipo]}"] = params[:term] @q = @model.search(parametros) @q.sorts = 'updated_at desc' if @q.sorts.empty? if respond_to?(:current_usuario) results = @q.result.accessible_by(current_ability).page(params[:page]) else results = @q.result.page(params[:page]) end method_label = params[:label] render json: results.map {|result| {id: result.id, label: result.send(method_label), value: result.send(method_label)} } end |
#create ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'app/controllers/crud_controller.rb', line 91 def create @saved = false if @id @record = @model.find(@id) :update, @record if respond_to?(:current_usuario) @saved = @record.update(params_permitt) else @record = @model.new(params_permitt) :create, if respond_to?(:current_usuario) @saved = @record.save end respond_to do |format| if @saved flash[:success] = params[:id].present? ? "Cadastro alterado com sucesso." : "Cadastro efetuado com sucesso." format.html { redirect_to @url } unless params[:render] == 'modal' format.js { render action: :index} else format.js end else action = (params[:id]) ? :edit : :new format.html { render action: action } format.js end end end |
#destroy ⇒ Object
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'app/controllers/crud_controller.rb', line 120 def destroy @record = @model.find(@id) :destroy, @record if respond_to?(:current_usuario) if @record.destroy respond_to do |format| flash[:success] = "Cadastro removido com sucesso." format.html { redirect_to @url } format.js { render action: :index } end else respond_to do |format| flash[:error] = @record.errors..join(", ") format.html { redirect_to @url } format.js { render action: :index } end end end |
#edit ⇒ Object
64 65 66 67 |
# File 'app/controllers/crud_controller.rb', line 64 def edit @record = @model.find(@id) :edit, @record if respond_to?(:current_usuario) end |
#index ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'app/controllers/crud_controller.rb', line 26 def index :read, if respond_to?(:current_usuario) if params[:scope].present? @q = @model.send(params[:scope]).search(params[:q]) else @q = @model.search(params[:q]) end if @q.sorts.empty? if "#{@crud_helper.order_field}".include?("desc") or "#{@crud_helper.order_field}".include?("asc") @q.sorts = "#{@crud_helper.order_field}" else @q.sorts = "#{@crud_helper.order_field} asc" end end if respond_to?(:current_usuario) @records = @q.result.accessible_by(current_ability, :read).page(params[:page]).per(@crud_helper.per_page) else @records = @q.result.page(params[:page]).per(@crud_helper.per_page) end @titulo = @model.name.pluralize render partial: 'records' if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial? end |
#new ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/controllers/crud_controller.rb', line 49 def new if params[:render] == "modal" if @model.reflect_on_association(params[:attribute].to_s).present? @model = @model.reflect_on_association(params[:attribute].to_s).class_name.constantize else @model = params[:attribute].to_s.camelcase.constantize end @url = crud_models_path(model: @model.name.underscore) = @model @crud_helper = Module.const_get("#{@model}Crud".camelize) end :new, if respond_to?(:current_usuario) @record = @model.new end |
#query ⇒ Object
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'app/controllers/crud_controller.rb', line 138 def query :read, if respond_to?(:current_usuario) @resource = @model @q = @resource.search(params[:q]) @q.sorts = 'updated_at desc' if @q.sorts.empty? if respond_to?(:current_usuario) results = @q.result.accessible_by(current_ability).page(params[:page]) else results = @q.result.page(params[:page]) end instance_variable_set("@#{params[:var]}", results) if request.respond_to?(:wiselinks_partial?) && request.wiselinks_partial? render :partial => params[:partial] else render :index, controller: request[:controller] end end |
#show ⇒ Object
69 70 71 72 |
# File 'app/controllers/crud_controller.rb', line 69 def show @record = @model.find(@id) :read, @record if respond_to?(:current_usuario) end |