class SurveyQuestion Oneline = 0 Multiline = 1 Radio = 2 Check = 3 Select = 4 Radiogroup = 5 include Mongoid::Document field :title, :localize => true field :description, :localize => true field :is_required, :type => Boolean field :type, :type => Integer # allow custom answer option field :custom_option, :type => Boolean field :sequence, :type => Integer, :default => 0 belongs_to :questionnaire_survey embeds_many :survey_question_options embeds_many :survey_question_radiogroups accepts_nested_attributes_for :survey_question_options, :allow_destroy => true accepts_nested_attributes_for :survey_question_radiogroups, :allow_destroy => true # default_scope asc(:sequence) default_scope ->{ asc(:sequence) } def jumpable? case type when SurveyQuestion::Radio, SurveyQuestion::Select true else false end end def can_set_jump? ( !custom_option ) end def get_jump_tos Hash[survey_question_options.select{ |o| !o.jump_to.blank? }.collect{ |o| [o.id.to_s, o.jump_to] }] end end