Sha256: c248aa09d12bb1d0715f70660af8e14e40b95a36e7be5cf7649b40e04a687985

Contents?: true

Size: 987 Bytes

Versions: 3

Compression:

Stored size: 987 Bytes

Contents

class Question < ActiveRecord::Base

  require 'acts_as_list'

  TYPES = ['TextQuestion', 'EssayQuestion', 'ChooseOneQuestion', 'ChecklistQuestion', 'FormSection']  
  
  belongs_to :asker, :polymorphic => true
  has_many :choices, :dependent=>:destroy

  acts_as_list :scope=>:asker

  attr_accessible :type, :name, :instructions, :required, :choices_attributes, :position
  accepts_nested_attributes_for :choices, :allow_destroy=>true, :reject_if=>lambda{|attrs| attrs['name'].blank? }

  validates_presence_of :type, :name
  validates_inclusion_of :type, :in=>TYPES

  default_scope :order => :position

  def attributes_protected_by_default
    default = [ self.class.primary_key ]
    default << 'id' unless self.class.primary_key.eql? 'id'
    default
  end

  def rhetorical?
    false
  end

  def supports_choices
    false
  end

  def choice_names
    return [] unless supports_choices
    self.choices.map(&:name)
  end

  def supports_multiple_answers?
    false
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ask-0.1.2 app/models/question.rb
ask-0.1.1 app/models/question.rb
ask-0.1.0 app/models/question.rb