creddit/app/controllers/posts_controller.rb

60 lines
1.1 KiB
Ruby

class PostsController < ApplicationController
before_filter :set_post, except: [:index, :new, :create]
before_filter :set_subcreddit
def index
@posts = Post.all
end
def show
@comments = @post.comments.arrange(order: :created_at)
end
def new
@post = Post.new
end
def create
@post = @subcreddit.posts.build(post_params)
@post.user = current_user
if @post.save
redirect_to subcreddit_post_path(@subcreddit, @post),
notice: 'Post created'
else
render :new
end
end
def edit
end
def update
if @post.update(post_params)
redirect_to subcreddit_post_path(@subcreddit, @post),
notice: 'Post was updated'
else
render :edit
end
end
def destroy
@post.destroy
redirect_to subcreddits_path(@subcreddit), notice: 'Post was deleted'
end
private
def post_params
params.require(:post).permit(:title, :link, :content, :subcreddit_id)
end
def set_subcreddit
@subcreddit = Subcreddit.find_by_slug(params['subcreddit_id'])
end
def set_post
@post = Post.find(params[:id])
end
end