respond_to :json
def index
- @reports = Report.where(account: current_account)
+ @reports = current_account.reports
end
def create
- status_ids = report_params[:status_ids].is_a?(Enumerable) ? report_params[:status_ids] : [report_params[:status_ids]]
-
- @report = Report.create!(account: current_account,
- target_account: Account.find(report_params[:account_id]),
- status_ids: Status.find(status_ids).pluck(:id),
- comment: report_params[:comment])
-
+ @report = current_account.reports.create!(
+ target_account: reported_account,
+ status_ids: reported_status_ids,
+ comment: report_params[:comment]
+ )
render :show
end
private
+ def reported_status_ids
+ Status.find(status_ids).pluck(:id)
+ end
+
+ def status_ids
+ Array(report_params[:status_ids])
+ end
+
+ def reported_account
+ Account.find(report_params[:account_id])
+ end
+
def report_params
params.permit(:account_id, :comment, status_ids: [])
end