app/helpers/flags_helper.rb
module FlagsHelper
def show_flag_action?(flaggable)
current_user && !own_flaggable?(flaggable) && !flagged?(flaggable)
end
def show_unflag_action?(flaggable)
current_user && !own_flaggable?(flaggable) && flagged?(flaggable)
end
private
def flagged?(flaggable)
if flaggable.is_a? Comment
@comment_flags[flaggable.id] unless flaggable.commentable_type == "Poll"
else
Flag.flagged?(current_user, flaggable)
end
end
def own_flaggable?(flaggable)
if flaggable.is_a? Comment
flaggable.user_id == current_user.id
else
flaggable.author_id == current_user.id
end
end
end