Sha256: 5b93462a4bb126e9a53a1fc017eb5d43b624c746eb33d3f32a0e166744a9c8df

Contents?: true

Size: 731 Bytes

Versions: 2

Compression:

Stored size: 731 Bytes

Contents

module PagesCms
  class Article < ActiveRecord::Base
    include RenderContent

    belongs_to :image

    validates :title,   presence: true
    validates :content, presence: true
    validates :tags,    presence: true


    def tags=(val)
      write_attribute(:tags, val.split(',') )
    end

    scope :search, -> (search)  { where('content ILIKE ? OR tags @> ? OR title ILIKE ? ',"#{search}",'{' + search + '}',"#{search}") }
    scope :status, -> (status) do
      case status
        when 'Archived'
          where(archived: true)
        when 'Drafts'
          where(draft: true)
        when 'Published'
          where('draft = ? AND archived = ?', false, false)
        else
          all
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pages_cms-0.1.1 app/models/pages_cms/article.rb
pages_cms-0.1.0 app/models/pages_cms/article.rb