module Dry::Controller

Public Instance Methods

create() click to toggle source
# File lib/dry/controller.rb, line 59
def create
  @record = resource_scope.new record_params
  if @record.save
    redirect_to collection_path(@resource),
      notice: "#{model_name.singular.capitalize} was successfully created."
  else
    render :new
  end
end
destroy() click to toggle source
# File lib/dry/controller.rb, line 78
def destroy
  @record.destroy
  redirect_to collection_path(@resource),
    notice: "#{model_name.singular.capitalize} was successfully destroyed."
end
edit() click to toggle source
# File lib/dry/controller.rb, line 56
def edit
end
index() click to toggle source
# File lib/dry/controller.rb, line 46
def index
end
new() click to toggle source
# File lib/dry/controller.rb, line 52
def new
  @record = resource_scope.new
end
show() click to toggle source
# File lib/dry/controller.rb, line 49
def show
end
update() click to toggle source
# File lib/dry/controller.rb, line 69
def update
  if @record.update record_params
    redirect_to collection_path(@resource),
      notice: "#{model_name.singular.capitalize} was successfully updated."
  else
    render :edit
  end
end

Private Instance Methods

collection() click to toggle source
# File lib/dry/controller.rb, line 113
def collection
  resource_scope.order 'created_at ASC'
end
model_name() click to toggle source
# File lib/dry/controller.rb, line 109
def model_name
  resource.model_name
end
record_params() click to toggle source
# File lib/dry/controller.rb, line 129
def record_params
  params.require(model_name.param_key.to_sym)
    .permit *self.class._dry_attrs[:write]
end
resource() click to toggle source
# File lib/dry/controller.rb, line 86
def resource
  @resource ||= Resource.new(controller_name.classify.constantize,
    attrs_read:     self.class._dry_attrs[:read],
    attrs_write:    self.class._dry_attrs[:write],
    attrs_options:  self.class._dry_attrs[:options],
    relations:      self.class._dry_nested_relations,
    routes:         resource_routes
  )
end
resource_routes() click to toggle source
# File lib/dry/controller.rb, line 96
def resource_routes
  ResourceRoutes.new(Rails.application.routes.routes, controller_path)
    .routes
end
resource_scope() click to toggle source
# File lib/dry/controller.rb, line 101
def resource_scope
  if b = self.class._dry_scope
    instance_exec &b
  else
    resource.model
  end
end
set_collection() click to toggle source
# File lib/dry/controller.rb, line 121
def set_collection
  @collection = collection
end
set_record() click to toggle source
# File lib/dry/controller.rb, line 125
def set_record
  @record = resource_scope.find params[:id]
end
set_resource() click to toggle source
# File lib/dry/controller.rb, line 117
def set_resource
  resource
end