Sha256: 30c8b4105b2cf15ccf8d3127c9ecc0c85a342c9dd84ddbff4d67529eb9603019
Contents?: true
Size: 1.22 KB
Versions: 9
Compression:
Stored size: 1.22 KB
Contents
class Question < ActiveRecord::Base # Associations belongs_to :survey_section belongs_to :question_group has_many :answers # it might not always have answers has_one :dependency # Scopes default_scope :order => "display_order ASC" # Validations validates_presence_of :text, :survey_section_id, :display_order validates_inclusion_of :is_mandatory, :in => [true, false] # Instance Methods def initialize(*args) super(*args) default_args end def default_args self.is_mandatory ||= true self.display_type = "default" self.pick = "none" end def mandatory? self.is_mandatory == true end def dependent? self.dependency != nil end def triggered?(response_set) dependent? ? self.dependency.met?(response_set) : true end def dep_class(response_set) dependent? ? triggered?(response_set) ? "dependent" : "hidden dependent" : nil end def dependency_satisfied?(response_set) self.has_dependency? and self.dependency.met?(response_set) end def part_of_group? !self.question_group.nil? end def renderer(g = question_group) r = [g ? g.renderer.to_s : nil, display_type].compact.join("_") r.blank? ? :default : r.to_sym end end
Version data entries
9 entries across 9 versions & 1 rubygems