65 lines
1.3 KiB
Ruby
65 lines
1.3 KiB
Ruby
|
|
class PostsController < ApplicationController
|
||
|
|
before_action :authenticate_user!, only: [:new, :create, :edit, :update, :destroy]
|
||
|
|
allow_unauthenticated_access(only: [:index, :show])
|
||
|
|
|
||
|
|
before_action :set_member
|
||
|
|
before_action :set_blog
|
||
|
|
before_action :set_post, only: [:show, :edit, :update, :destroy]
|
||
|
|
|
||
|
|
def index
|
||
|
|
@posts = @blog.posts
|
||
|
|
end
|
||
|
|
|
||
|
|
def show
|
||
|
|
|
||
|
|
end
|
||
|
|
|
||
|
|
def new
|
||
|
|
@post = @blog.posts.build
|
||
|
|
end
|
||
|
|
|
||
|
|
def create
|
||
|
|
@post = @blog.posts.build(post_params)
|
||
|
|
if @post.save
|
||
|
|
redirect_to member_blog_post_path(@member, @blog, @post), notice: "Post created."
|
||
|
|
else
|
||
|
|
render :new, status: :unprocessable_entity
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
def edit
|
||
|
|
end
|
||
|
|
|
||
|
|
def update
|
||
|
|
if @post.update(post_params)
|
||
|
|
redirect_to member_blog_post_path(@member, @blog, @post), notice: "Post updated."
|
||
|
|
else
|
||
|
|
render :edit, status: :unprocessable_entity
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
def destroy
|
||
|
|
@post.destroy
|
||
|
|
redirect_to member_blog_path(@member, @blog), notice: "Post deleted."
|
||
|
|
end
|
||
|
|
|
||
|
|
private
|
||
|
|
|
||
|
|
def set_member
|
||
|
|
@member = Member.find(params[:member_id])
|
||
|
|
end
|
||
|
|
|
||
|
|
def set_blog
|
||
|
|
@blog = @member.blogs.find(params[:blog_id])
|
||
|
|
end
|
||
|
|
|
||
|
|
def set_post
|
||
|
|
@post = @blog.posts.find(params[:id])
|
||
|
|
end
|
||
|
|
|
||
|
|
def post_params
|
||
|
|
params.require(:post).permit(:post_title, :text, :mood, :music, :icon_image)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|