Sha256: 5a0e4869aa9e42a8fb6055b284ac062b569d6322ca3d655fca2c5901cb8a98ab

Contents?: true

Size: 1.42 KB

Versions: 20

Compression:

Stored size: 1.42 KB

Contents

module Pulitzer
  class TagsController < ApplicationController
    before_action :get_tag, only: [:edit, :update, :destroy]

    rescue_from ActiveRecord::RecordNotFound, with: :render_not_found

    def index
      @root_tags = Tag.root
      @flat_tags = Tag.flat
      render partial: 'index'
    end

    def new
      @tag = Tag.new(tag_params)
      render partial: new_template(@tag)
    end

    def edit
      render partial: 'form', locals: { tag: @tag }
    end

    def show
      @tag = Tag.find(params[:id])
      render partial: 'show', locals: { tag: @tag }
    end

    def create
      @tag = Tag.new(tag_params)
      if @tag.save
        render partial: 'show_wrapper', locals: { tag: @tag }
      else
        render partial: new_template(@tag), locals: { tag: @tag }, status: 409
      end
    end

    def update
      if @tag.update_attributes(tag_params)
        render partial: 'show', locals: { tag: @tag }
      else
        render partial: 'form', locals: { tag: @tag }, status: 409
      end
    end

    def destroy
      @tag.destroy
      head :ok
    end

    protected

    def new_template(tag)
      tag.hierarchical? ? 'new_hierarchical' : 'new_flat'
    end

    def render_not_found(e)
      Rails.logger.warn("Rendering 404 because #{e.inspect}")
      head :ok, status: :not_found
    end

    def tag_params
      params[:tag].permit!
    end

    def get_tag
      @tag = Tag.find(params[:id])
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
pulitzer-0.15.12 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.11 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.10 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.9 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.8 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.7 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.6 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.5 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.4 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.3 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.2 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.1 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.0 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.14.4 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.14.3 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.14.2 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.14.1 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.14.0 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.13.1 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.13.0 app/controllers/pulitzer/tags_controller.rb