|
- class CommentsController < ApplicationController
- before_action :find_hack
- before_action :require_login
-
-
- # 评论
- def create
- begin
- @discuss = @hack.discusses.new(comment_params) # 管理员回复的能够显示
- @discuss.hidden = false
- @discuss.user_id = current_user.id
- @discuss.save!
- rescue Exception => e
- uid_logger_error("create discuss failed : #{e.message}")
- render_error("评论异常")
- end
- end
-
- # 回复
- def reply
- begin
- @discuss = @hack.discusses.new(reply_params)
- @discuss.hidden = false
- @discuss.user_id = current_user.id
- @discuss.root_id = params[:comments][:parent_id]
- @discuss.save!
- rescue Exception => e
- uid_logger_error("reply discuss failed : #{e.message}")
- render_error("回复评论异常")
- end
- end
-
- # 列表
- def index
- discusses =
- if current_user.admin_or_business?
- @hack.discusses.where(root_id: nil)
- else
- @hack.discusses.where(root_id: nil, hidden: false)
- end
- @discusses_count = discusses.count
- @discusses= paginate discusses
- end
-
- # 删除
- def destroy
- @hack.discusses.find_by(id: params[:id]).destroy
- render_ok
- end
-
- # 隐藏、取消隐藏
- def hidden
- if current_user.admin_or_business?
- @discuss = @hack.discusses.where(id: params[:id]).first
- @discuss.update_attribute(:hidden, params[:hidden].to_i == 1)
- sucess_status
- else
- Educoder::TipException(403, "..")
- end
- end
-
-
- private
- def find_hack
- @hack = Hack.find_by_identifier(params[:hack_identifier])
- end
-
- def comment_params
- params.require(:comments).permit(:content)
- end
-
- def reply_params
- params.require(:comments).permit(:content, :parent_id)
- end
- end
|