class BlogsController < ApplicationController before_action :authenticate_user!, only: [:destroy, :new, :create, :edit, :update] allow_unauthenticated_access(only: %i[index show]) before_action :set_member before_action :set_blog, only: [:show, :edit, :update, :destroy] def index @posts = Post.order(created_at: :asc) end def edit @blog = Blog.find(params[:id]) end def new @blog = @member.blogs.new @blog = @member.blogs.build end def create @blog = @member.blogs.new(blog_params) if @blog.save redirect_to root_path, notice: 'Blog was successfully created.' else render :new, notice: 'Could not save blog.' end end def destroy @member = Member.find(params[:member_id]) @blog = @member.blogs.find(params[:id]) @blog.destroy redirect_to member_path(@member), notice: "Blog deleted." end def show @member = Member.find(params[:member_id]) @blog = @member.blogs.find(params[:id]) @posts = @blog.posts.order(created_at: :desc) end def update @blog = Blog.find(params[:id]) if @blog.update(blog_params) redirect_to member_blog_path(@member) else render :edit end end end private def blog_params params.require(:blog).permit(:title, :links, :description) end def set_member @member = Member.find(params[:member_id]) end def set_blog @blog = @member.blogs.find(params[:id]) end