Sha256: be88956c5f47c958524ef07399944ddfb0e1eff020e9e52460121d24c1d702d5

Contents?: true

Size: 1.84 KB

Versions: 7

Compression:

Stored size: 1.84 KB

Contents

# -*- encoding: utf-8 -*-
require 'timeout'
class Question < ActiveRecord::Base
  attr_accessible :body, :shared, :solved, :note
  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(255)
#  solved        :boolean          default(FALSE), not null
#  note          :text
#  created_at    :datetime         not null
#  updated_at    :datetime         not null
#

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
enju_question-0.1.0.pre10 app/models/question.rb
enju_question-0.1.0.pre9 app/models/question.rb
enju_question-0.1.0.pre8 app/models/question.rb
enju_question-0.1.0.pre7 app/models/question.rb
enju_question-0.1.0.pre6 app/models/question.rb
enju_question-0.1.0.pre5 app/models/question.rb
enju_question-0.1.0.pre4 app/models/question.rb