Method: Effective::CrudController::Dsl#datatable

Defined in:
app/controllers/concerns/effective/crud_controller/dsl.rb

#datatable(obj = nil, opts = {}, &block) ⇒ Object

datatable -> { MyDatatable.new }, only: [:index]



77
78
79
80
81
82
83
84
85
# File 'app/controllers/concerns/effective/crud_controller/dsl.rb', line 77

def datatable(obj = nil, opts = {}, &block)
  raise 'expected a proc or block' unless (obj.respond_to?(:call) || block_given?)

  instance_exec do
    before_action(opts) do
      @datatable ||= (block_given? ? instance_exec(&block) : obj.call)
    end
  end
end