Sha256: 0eda9f03fa7e0274034cd36a1434123395bb1eb6ea22061ce1682482cf3d8b40

Contents?: true

Size: 1.42 KB

Versions: 19

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 and return
    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 :not_found
    end

    def tag_params
      params[:tag].permit!
    end

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

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
pulitzer-0.15.31 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.30 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.29 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.28 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.27 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.26 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.25 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.24 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.23 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.22 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.21 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.20 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.19 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.18 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.17 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.16 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.15 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.14 app/controllers/pulitzer/tags_controller.rb
pulitzer-0.15.13 app/controllers/pulitzer/tags_controller.rb