Sha256: 4e23187d9aaab8331fe61fa85e9bdfde648d4e0730b349835a9fa41d5412d5e8

Contents?: true

Size: 1.83 KB

Versions: 3

Compression:

Stored size: 1.83 KB

Contents

require_dependency 'comable/admin/application_controller'

module Comable
  module Admin
    class PagesController < Comable::Admin::ApplicationController
      load_and_authorize_resource class: Comable::Page.name, except: :index, find_by: :slug

      def index
        @q = Comable::Page.ransack(params[:q])
        @pages = @q.result.accessible_by(current_ability).by_newest
      end

      def show
        edit
        render :edit
      end

      def new
      end

      def edit
        set_preview_session
      end

      def create
        @page = Comable::Page.new(page_params)
        @page.slug = @page.normalize_slug(page_params[:slug])

        if @page.save
          redirect_to comable.admin_page_path(@page), notice: Comable.t('successful')
        else
          render :new
        end
      end

      def update
        @page.attributes = page_params
        @page.slug = @page.normalize_slug(page_params[:slug])

        if @page.save
          redirect_to comable.admin_page_path(@page), notice: Comable.t('successful')
        else
          render :edit
        end
      end

      def destroy
        @page.destroy
        redirect_to comable.admin_pages_path, notice: Comable.t('successful')
      end

      private

      def page_params
        params.require(:page).permit(
          :title,            # コンテンツのタイトル
          :content,          # コンテンツ
          :page_title,       # ページのタイトル
          :meta_description, # ディスクリプション
          :meta_keywords,    # キーワード
          :slug,             # スラグ
          :published_at      # 公開日時
        )
      end

      def set_preview_session
        session[Comable::Page::PREVIEW_SESSION_KEY] ||= {}
        session[Comable::Page::PREVIEW_SESSION_KEY][@page.slug] = true
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
comable-backend-0.7.1 app/controllers/comable/admin/pages_controller.rb
comable-backend-0.7.0 app/controllers/comable/admin/pages_controller.rb
comable-backend-0.7.0.beta2 app/controllers/comable/admin/pages_controller.rb