Sha256: 63a57755b9406e13823e8e5c5386c4c63b1766548b5030fe8dda909e47654917

Contents?: true

Size: 1.84 KB

Versions: 2

Compression:

Stored size: 1.84 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) %>).page(params[:page]).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

2 entries across 2 versions & 1 rubygems

Version Path
stationed-0.6.0 lib/templates/rails/scaffold_controller/controller.rb
stationed-0.5.0 lib/templates/rails/scaffold_controller/controller.rb