Sha256: 2fe1839ac4790ae203eb34b193cf1a0f708148c0065ec0b7d6ca355348c521f3
Contents?: true
Size: 1.27 KB
Versions: 3
Compression:
Stored size: 1.27 KB
Contents
class Blog::Post < ActiveRecord::Base self.table_name = 'blog_posts' # -- Relationships -------------------------------------------------------- belongs_to :blog has_many :comments, :dependent => :destroy # -- Validations ---------------------------------------------------------- validates :blog_id, :title, :slug, :year, :month, :content, :presence => true validates :slug, :uniqueness => { :scope => [:blog_id, :year, :month] }, :format => { :with => /\A\w[a-z0-9_-]*\z/i } # -- Scopes --------------------------------------------------------------- default_scope -> { order('published_at DESC') } scope :published, -> { where(:is_published => true) } scope :for_year, -> year { where(:year => year) } scope :for_month, -> month { where(:month => month) } # -- Callbacks ------------------------------------------------------------ before_validation :set_slug, :set_published_at, :set_date protected def set_slug self.slug ||= self.title.to_s.downcase.slugify end def set_date self.year = self.published_at.year self.month = self.published_at.month end def set_published_at self.published_at ||= Time.zone.now end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
comfy_blog-1.1.1 | app/models/blog/post.rb |
comfy_blog-1.1.0 | app/models/blog/post.rb |
comfy_blog-1.0.0 | app/models/blog/post.rb |