Sha256: 17e540b7426a41093fffc5f0ab970b52e7f1000ca20a16872cef9ca8104fb2a1

Contents?: true

Size: 769 Bytes

Versions: 61

Compression:

Stored size: 769 Bytes

Contents

class Comment < ApplicationRecord
  include Concerns::Parentable
  include Concerns::Locale
  include Concerns::Spammable

  STATUSES = %w(pending_moderation published)

  after_initialize :default_values

  belongs_to :commentable, polymorphic: true

  validates :author, :message, presence: true
  validates :status, inclusion: { in: STATUSES }
  validates :email, presence: true, email: true
  validates :website, url: true, allow_blank: true

  def published?
    status.to_s == 'published'
  end

  def publish!
    update_attribute :status, :published
  end

  def unpublish!
    update_attribute :status, :pending_moderation
  end

  private

  def default_values
    if self.new_record?
      self.status = 'pending_moderation' if status.nil?
    end
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
udongo-7.9.0 app/models/comment.rb
udongo-7.8.1 app/models/comment.rb
udongo-7.8.0 app/models/comment.rb
udongo-7.7.2 app/models/comment.rb
udongo-7.7.1 app/models/comment.rb
udongo-7.7.0 app/models/comment.rb
udongo-7.6.2 app/models/comment.rb
udongo-7.6.1 app/models/comment.rb
udongo-7.6.0 app/models/comment.rb
udongo-7.5.1 app/models/comment.rb
udongo-7.5.0 app/models/comment.rb
udongo-7.4.2 app/models/comment.rb
udongo-7.4.1 app/models/comment.rb
udongo-7.4.0 app/models/comment.rb
udongo-7.3.5 app/models/comment.rb
udongo-7.3.4 app/models/comment.rb
udongo-7.3.3 app/models/comment.rb
udongo-7.3.2 app/models/comment.rb
udongo-7.3.1 app/models/comment.rb
udongo-7.2.1 app/models/comment.rb