Sha256: dca1db5231056cbed6780987cca6b40b500bc61e86221ad3025f60aa5713662b

Contents?: true

Size: 1.29 KB

Versions: 3

Compression:

Stored size: 1.29 KB

Contents

class NewsPost < ActiveRecord::Base
  scope :published, -> { where(draft: false) }
  scope :current, -> { where('start_date <= ? AND end_date >= ?', Time.zone.now, Time.zone.now) }
  default_scope { order('news_posts.start_date DESC') }
  belongs_to :user
  belongs_to :required_role, class_name: 'Role', foreign_key: 'required_role_id', validate: true

  validates_presence_of :title, :body, :user_id
  validates_associated :user
  validate :check_date

  acts_as_list

  searchable do
    text :title, :body
    time :start_date, :end_date
  end

  def self.per_page
    10
  end

  def check_date
    if start_date and end_date
      self.end_date = end_date.end_of_day
      if start_date >= end_date
        errors.add(:start_date)
        errors.add(:end_date)
      end
    end
  end
end

# == Schema Information
#
# Table name: news_posts
#
#  id               :integer          not null, primary key
#  title            :text
#  body             :text
#  user_id          :integer
#  start_date       :datetime
#  end_date         :datetime
#  required_role_id :integer          default(1), not null
#  note             :text
#  position         :integer
#  draft            :boolean          default(FALSE), not null
#  created_at       :datetime
#  updated_at       :datetime
#  url              :string
#

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
enju_news-0.2.0 app/models/news_post.rb
enju_news-0.2.0.beta.3 app/models/news_post.rb
enju_news-0.2.0.beta.2 app/models/news_post.rb