micro-blogger/app/controllers/v1/blogs_controller.rb
2018-11-11 18:38:16 -06:00

50 lines
1001 B
Ruby

# frozen_string_literal: true
module V1
class BlogsController < ApplicationController
before_action :set_blog, only: %i[show update destroy]
def index
@blogs = policy_scope Blog.all
end
def show; end
def create
@blog = Blog.new(blog_params)
@blog.user_id = current_user.id
authorize @blog
if @blog.save
render :show, status: :created, location: v1_blogs_url(@blog)
else
render json: @blog.errors, status: :unprocessable_entity
end
end
def update
if @blog.update(blog_params)
render :show, status: :ok, location: v1_blogs_url(@blog)
else
render json: @blog.errors, status: :unprocessable_entity
end
end
def destroy
@blog.destroy
end
private
def set_blog
@blog = Blog.find(params[:id])
authorize @blog
end
def blog_params
params.require(:blog).permit(policy(Blog).permitted_attributes)
end
end
end