Sha256: 0c2463b5347f1a63711b8ed4b51a16e5e3927ddd8cb5224e7f7d375b42a98d8e

Contents?: true

Size: 1.82 KB

Versions: 5

Compression:

Stored size: 1.82 KB

Contents

<% if namespaced? -%>
require_dependency "<%= namespaced_file_path %>/application_controller"

<% end -%>
<% module_namespacing do -%>
class <%= controller_class_name %>Controller < ApplicationController
  respond_to :html, :json
  before_action :set_<%= singular_table_name %>, only: %i[show edit update destroy]

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

  def show
    authorize @<%= singular_table_name %>
    respond_with @<%= singular_table_name %>
  end

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

  def edit
    authorize @<%= singular_table_name %>
    respond_with @<%= singular_table_name %>
  end

  def create
    @<%= singular_table_name %> = <%= orm_class.build(class_name, "#{singular_table_name}_params") %>
    authorize @<%= singular_table_name %>
    @<%= orm_instance.save %>
    respond_with @<%= singular_table_name %>
  end

  def update
    authorize @<%= singular_table_name %>
    @<%= orm_instance.update("#{singular_table_name}_params") %>
    respond_with @<%= singular_table_name %>
  end

  def destroy
    authorize @<%= singular_table_name %>
    @<%= orm_instance.destroy %>
    respond_with @<%= singular_table_name %>
  end

  private

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

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
stationed-0.4.0 lib/templates/rails/scaffold_controller/controller.rb
stationed-0.3.0 lib/templates/rails/scaffold_controller/controller.rb
stationed-0.2.0 lib/templates/rails/scaffold_controller/controller.rb
stationed-0.1.0 lib/templates/rails/scaffold_controller/controller.rb
stationed-0.0.1 lib/templates/rails/scaffold_controller/controller.rb