article.rb 608 Bytes
require_dependency 'article'

class Article

  has_many :paragraph_comments, :class_name => 'Comment', :foreign_key => 'source_id', :dependent => :destroy, :order => 'created_at asc', :conditions => [ 'paragraph_id IS NOT NULL']

  validate :body_change_with_comments

  def body_change_with_comments
    if body && body_changed? && !self.comments.empty?
      paragraphs_with_comments = self.comments.where("paragraph_id IS NOT NULL")
      errors[:base] << (N_('You are unable to change the body of the article when paragraphs are commented')) unless (paragraphs_with_comments).empty?
    end
  end
 
end