Sha256: 009874544c5e66a3bfd7905ad6ad2ab2df7a1ce5c607af66ba5602c6627e4fec

Contents?: true

Size: 1.56 KB

Versions: 1

Compression:

Stored size: 1.56 KB

Contents

<% if namespaced? -%>
require_dependency "<%= namespaced_path %>/authenticated_controller"

<% end -%>
<% module_namespacing do -%>
class <%= controller_class_name %>Controller < AuthenticatedController
  respond_to :html

  def index
    @<%= plural_table_name %> = <%= orm_class.all(class_name) %>
  end

  def show
    load_<%= singular_table_name %>
  end

  def new
    @<%= singular_table_name %> = <%= orm_class.build(class_name) %>
  end

  def edit
    load_<%= singular_table_name %>
  end

  def create
    @<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
    BasicServices::Create.new(@<%= singular_table_name %>).execute

    respond_with @<%= singular_table_name %>
  end

  def update
    load_<%= singular_table_name %>
    @<%= singular_table_name %>.attributes = <%= singular_table_name %>_params
    BasicServices::Update.new(@<%= singular_table_name %>).execute

    respond_with @<%= singular_table_name %>
  end

  def destroy
    load_<%= singular_table_name %>
    BasicServices::Destroy.new(@<%= singular_table_name %>).execute

    respond_with @<%= singular_table_name %>
  end

  private

  def load_<%= singular_table_name %>
    @<%= singular_table_name %> = <%= orm_class.find(class_name, "params[:id]") %>
  end

  def <%= "#{singular_table_name}_params" %>
    <%- if attributes_names.empty? -%>
    params.fetch(:<%= singular_table_name %>, {})
    <%- else -%>
    params.require(:<%= singular_table_name %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>)
    <%- end -%>
  end
end
<% end -%>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
genesis_rails-0.0.1 lib/genesis_rails/templates/rails/scaffold_controller/controller.rb