class Admin::PostsController

Public Instance Methods

create() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 39
def create
  @post = Admin::Post.create(title: title_params[:title])

  if @post.errors.any?
    render 'new' and return
  end

  redirect_to url('/admin/posts/:post.id/edit', post: @post)
end
destroy() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 49
def destroy
  post = Admin::Post.find(params[:id])
  post.destroy
  redirect_to :root
end
drafts() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 22
def drafts
  posts = Admin::Post

  posts = posts.search search_posts_params
  @posts = posts.drafted.order('posts.created_at DESC').includes(:titles)

  render 'index'
end
edit() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 55
def edit
end
index() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 10
def index
  posts = Admin::Post

  posts = posts.search search_posts_params
  @posts = posts.order('posts.created_at DESC').includes(:titles)

  respond_to do |format|
    format.html
    format.js
  end
end
new() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 6
def new
  @post = Admin::Post.new
end
published() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 31
def published
  posts = Admin::Post

  posts = posts.search search_posts_params
  @posts = posts.published.order('posts.published_at DESC').includes(:titles)
  render 'index'
end
show() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 65
def show
  respond_to do |format|
    format.html do
      render layout: false if request.xhr?
    end
  end
end
toggle() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 73
def toggle
  @post = Admin::Post.find(params[:post_id])
  if @post.published?
    @post.unpublish!
  else
    @post.publish!
  end

  respond_to do |format|
    format.js
  end
end
update() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 58
def update
  @post.update!(post_params)
  respond_to do |format|
    format.js
  end
end

Protected Instance Methods

fetch_post() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 104
def fetch_post
  @post = Admin::Post.find(params[:id])
end
post_params() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 100
def post_params
  params.require(:post).permit(:status, :stylesheet, :javascript, :slug, content: [:raw, :html])
end
search_posts_params() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 88
def search_posts_params
  params.require(:posts).permit(:title, :tag)
rescue ActionController::ParameterMissing
  {
    status: 'all'
  }
end
title_params() click to toggle source
# File lib/ecrire/app/controllers/admin/posts_controller.rb, line 96
def title_params
  params.require(:post).permit(:title)
end