Sha256: 19e880fdb42a298a6a4dc55403d00429fa1ae38f46c0cfbf5dc9383a4e61d930

Contents?: true

Size: 1.74 KB

Versions: 3

Compression:

Stored size: 1.74 KB

Contents

# -*- encoding: utf-8 -*-
class Question < ActiveRecord::Base
  default_scope { order('id DESC') }
  scope :public_questions, -> {where(shared: true)}
  scope :private_questions, -> {where(shared: false)}
  scope :solved, -> {where(solved: true)}
  scope :unsolved, -> {where(solved: false)}
  belongs_to :user, validate: true
  has_many :answers, dependent: :destroy

  validates_associated :user
  validates_presence_of :user, :body

  searchable do
    text :body, :answer_body
    string :username
    time :created_at
    time :updated_at do
      last_updated_at
    end
    boolean :shared
    boolean :solved
    integer :answers_count
    integer :manifestation_id, multiple: true do
      answers.collect(&:items).flatten.collect{|i| i.manifestation.id}
    end
  end

  acts_as_taggable_on :tags
  enju_ndl_crd

  paginates_per 10

  def self.crd_per_page
    5
  end

  def answer_body
    text = ""
    self.reload
    self.answers.each do |answer|
      text += answer.body
    end
    return text
  end

  def username
    self.user.try(:username)
  end

  def last_updated_at
    if answers.last
      time = answers.last.updated_at
    end
    if time
      if time > updated_at
        time
      else
        updated_at
      end
    else
      updated_at
    end
  end

end

# == Schema Information
#
# Table name: questions
#
#  id            :integer          not null, primary key
#  user_id       :integer          not null
#  body          :text
#  shared        :boolean          default(TRUE), not null
#  answers_count :integer          default(0), not null
#  deleted_at    :datetime
#  state         :string
#  solved        :boolean          default(FALSE), not null
#  note          :text
#  created_at    :datetime
#  updated_at    :datetime
#

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
enju_question-0.2.0 app/models/question.rb
enju_question-0.2.0.beta.4 app/models/question.rb
enju_question-0.2.0.beta.3 app/models/question.rb