Files
fizzy/app/controllers/cards/comments/reactions_controller.rb
T
David Heinemeier Hansson 3ecf150636 Use proper access control
Otherwise you could react to any comment on the entire account. And then
you might as well just do Comment.find.
2025-04-11 17:41:28 +02:00

45 lines
1007 B
Ruby

class Cards::Comments::ReactionsController < ApplicationController
include CardScoped
before_action :set_comment
def index
@reactions = @comment.reactions.includes(:reacter).ordered
end
def new
end
def create
@reaction = @comment.reactions.create!(reaction_params)
broadcast_create
redirect_to card_comment_reactions_path(@comment.card, @comment)
end
def destroy
@reaction = @comment.reactions.find(params[:id])
@reaction.destroy
broadcast_remove
end
private
def set_comment
@comment = @card.comments.find(params[:comment_id])
end
def reaction_params
params.expect(reaction: :content)
end
def broadcast_create
@reaction.broadcast_append_to @reaction.comment, :comments,
target: "reactions_comment_#{@comment.id}", partial: "cards/comments/reactions/reaction", locals: { comment: @comment }
end
def broadcast_remove
@reaction.broadcast_remove_to @reaction.comment, :comments
end
end