Sha256: e2ba821a8958b264603b7683587ae7c1029e842b31e5bd2ad8c83929237746b0
Contents?: true
Size: 1.42 KB
Versions: 5
Compression:
Stored size: 1.42 KB
Contents
module Blogo::Admin class PostsController < BaseController def index @posts = Blogo::Post.all end def new @post = Blogo::Post.new(published: true) end def create service = Blogo::CreatePostService.new(blogo_current_user, post_params) if service.create! @post = service.post flash[:notice] = "The post is created" redirect_to blogo_admin_posts_path else @post = service.post render 'new' end end def edit @post = Blogo::Post.find(params[:id]) end def update @post = Blogo::Post.find(params[:id]) service = Blogo::UpdatePostService.new(@post, post_params) if service.update! flash[:notice] = "The post is updated" redirect_to blogo_admin_posts_path else render 'edit' end end def destroy post = Blogo::Post.find(params[:id]) Blogo::DestroyPostService.new(post).destroy! flash[:notice] = "The post is removed" redirect_to blogo_admin_posts_path end def preview @post = Blogo::PreviewPostService.new(blogo_current_user, post_params).preview @meta = {title: @post.title } @tags = Blogo::Tag.all render 'blogo/posts/show', layout: 'blogo/blog' end private def post_params params.require(:post).permit(:title, :permalink, :published_at, :raw_content, :published, :tags_string) end end end
Version data entries
5 entries across 5 versions & 1 rubygems