diff --git a/app/controllers/report_controller.rb b/app/controllers/report_controller.rb
index 001ad791655caff7beb8943ffb8f45502459a0b7..097c92989a7f9079e2281fd7d9f2b5c3663b19d5 100644
--- a/app/controllers/report_controller.rb
+++ b/app/controllers/report_controller.rb
@@ -27,7 +27,8 @@ class ReportController < ApplicationController
   end
 
   def create
-    if current_user.reports.create! report_params
+    report = current_user.reports.new(report_params)
+    if report.save
       flash.now[:notice] = I18n.t 'report.status.created'
       render :nothing => true, :status => 200
     else
diff --git a/app/models/report.rb b/app/models/report.rb
index 6abac47d01c4953edf5c4012920e0403bf994efc..e934e216d7448646c250904ec3ec133e92290042 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -4,7 +4,7 @@ class Report < ActiveRecord::Base
   validates :post_type, presence: true
   validates :text, presence: true
 
-  validate :entry_exists, :on => :create
+  validate :entry_does_not_exist, :on => :create
 
   belongs_to :user
   belongs_to :post
@@ -12,7 +12,7 @@ class Report < ActiveRecord::Base
 
   after_commit :send_report_notification, :on => :create
 
-  def entry_exists
+  def entry_does_not_exist
     if Report.where(post_id: post_id, post_type: post_type).exists?(user_id: user_id)
       errors[:base] << 'You cannot report the same post twice.'
     end