43 lines
1009 B
Ruby
43 lines
1009 B
Ruby
class Comments::ReactionsController < ApplicationController
|
|
before_action :set_comment
|
|
|
|
def index
|
|
@reactions = @comment.reactions.ordered.includes(:reacter)
|
|
end
|
|
|
|
def new
|
|
end
|
|
|
|
def create
|
|
@reaction = @comment.reactions.create!(reaction_params)
|
|
|
|
broadcast_create
|
|
redirect_to bucket_bubble_comment_reactions_url(@comment.bubble.bucket, @comment.bubble, @comment)
|
|
end
|
|
|
|
def destroy
|
|
@reaction = @comment.reactions.find(params[:id])
|
|
@reaction.destroy!
|
|
|
|
broadcast_remove
|
|
end
|
|
|
|
private
|
|
def set_comment
|
|
@comment = Comment.find(params[:comment_id])
|
|
end
|
|
|
|
def reaction_params
|
|
params.require(:reaction).permit(:content)
|
|
end
|
|
|
|
def broadcast_create
|
|
@reaction.broadcast_append_to @reaction.comment, :comments,
|
|
target: "reactions_comment_#{@comment.id}", partial: "comments/reactions/reaction", locals: { comment: @comment }
|
|
end
|
|
|
|
def broadcast_remove
|
|
@reaction.broadcast_remove_to @reaction.comment, :comments
|
|
end
|
|
end
|