Sha256: 97950a3573268bea3b4cd5186da83b9dcf1469b9cd98a24d6cabe032bb769bb3

Contents?: true

Size: 1.78 KB

Versions: 1

Compression:

Stored size: 1.78 KB

Contents

require_dependency "bigmouth/application_controller"

module Bigmouth
  class ArticlesController < ApplicationController

    layout Bigmouth.layout

    before_action :set_article, only: %i(show edit update destroy)
    before_action :action_requires_login, except: %i(index show)

    # GET /articles
    def index
      @articles = Article.all
    end

    # GET /articles/1
    def show
    end

    # GET /articles/new
    def new
      @article = Article.new
      render :new, layout: "bigmouth/default"
    end

    # GET /articles/1/edit
    def edit
      render :edit, layout: "bigmouth/default"
    end

    # POST /articles
    def create
      @article = Article.new(article_params)
      @article.author_id = current_user.id

      if @article.save
        redirect_to @article, notice: 'Article was successfully created.'
      else
        render :new
      end
    end

    # PATCH/PUT /articles/1
    def update
      if @article.update(article_params)
        redirect_to @article, notice: 'Article was successfully updated.'
      else
        render :edit
      end
    end

    # DELETE /articles/1
    def destroy
      @article.destroy
      redirect_to articles_url, notice: 'Article was successfully destroyed.'
    end

    private
      # Use callbacks to share common setup or constraints between actions.
      def set_article
        @article = Article.find(params[:id])
      end

      # Only allow a trusted parameter "white list" through.
      def article_params
        # params.require(:article).permit(:title, :text, :author_name)
        params.require(:article).permit(:title, :text)
      end

      def action_requires_login
        if current_user.blank?
          redirect_back_or_to root_path, alert: "You are not permitted to do this action."
        end
      end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bigmouth-0.0.1 app/controllers/bigmouth/articles_controller.rb