diff --git a/app/models/todo.rb b/app/models/todo.rb
index 024cdcc0d8760391436febf72feb5743880d4635..4be5806b8d1e3e516d2d22df83c66356065a39ff 100644
--- a/app/models/todo.rb
+++ b/app/models/todo.rb
@@ -29,8 +29,8 @@ class Todo < ActiveRecord::Base
   delegate :name, :email, to: :author, prefix: true, allow_nil: true
 
   validates :action, :project, :target_type, :user, presence: true
-  validates :target_id, presence: true, if: ->(t) { t.target_type.present? && t.target_type != 'Commit' }
-  validates :commit_id, presence: true, if: ->(t) { t.target_type.present? && t.target_type == 'Commit' }
+  validates :target_id, presence: true, unless: :for_commit?
+  validates :commit_id, presence: true, if: :for_commit?
 
   default_scope { reorder(id: :desc) }