Commit 5521d9b4c262a089c443049486451490378de88a

Authored by Antonio Terceiro
1 parent 4bad2f6a

Named scope to select non-spam comments

ActionItem2306
app/models/comment.rb
@@ -10,6 +10,8 @@ class Comment < ActiveRecord::Base @@ -10,6 +10,8 @@ class Comment < ActiveRecord::Base
10 has_many :children, :class_name => 'Comment', :foreign_key => 'reply_of_id', :dependent => :destroy 10 has_many :children, :class_name => 'Comment', :foreign_key => 'reply_of_id', :dependent => :destroy
11 belongs_to :reply_of, :class_name => 'Comment', :foreign_key => 'reply_of_id' 11 belongs_to :reply_of, :class_name => 'Comment', :foreign_key => 'reply_of_id'
12 12
  13 + named_scope :without_spam, :conditions => ['spam IS NULL OR spam = ?', false]
  14 +
13 # unauthenticated authors: 15 # unauthenticated authors:
14 validates_presence_of :name, :if => (lambda { |record| !record.email.blank? }) 16 validates_presence_of :name, :if => (lambda { |record| !record.email.blank? })
15 validates_presence_of :email, :if => (lambda { |record| !record.name.blank? }) 17 validates_presence_of :email, :if => (lambda { |record| !record.name.blank? })
test/unit/comment_test.rb
@@ -437,4 +437,12 @@ class CommentTest < ActiveSupport::TestCase @@ -437,4 +437,12 @@ class CommentTest < ActiveSupport::TestCase
437 assert !c.ham? 437 assert !c.ham?
438 end 438 end
439 439
  440 + should 'be able to select non-spam comments' do
  441 + c1 = fast_create(Comment)
  442 + c2 = fast_create(Comment, :spam => false)
  443 + c3 = fast_create(Comment, :spam => true)
  444 +
  445 + assert_equivalent [c1,c2], Comment.without_spam
  446 + end
  447 +
440 end 448 end