Newer
Older
dmpopidor / app / models / answer.rb
@ray.carrick ray.carrick on 1 Mar 2017 1 KB Optimistic Locking
class Answer < ActiveRecord::Base
  
  ##
  # Associations
	belongs_to :question
	belongs_to :user
	belongs_to :plan
  has_many :notes, dependent: :destroy
  has_and_belongs_to_many :question_options, join_table: "answers_question_options"

  has_many :notes

  ##
  # Possibly needed for active_admin
  #   -relies on protected_attributes gem as syntax depricated in rails 4.2
  attr_accessible :text, :plan_id, :lock_version, :question_id, :user_id, :question_option_ids, 
                  :question, :user, :plan, :question_options, :notes, :note_ids,
                  :as => [:default, :admin]

  ##
  # Validations
#  validates :user, :plan, :question, presence: true
#  
#  # Make sure there is only one answer per question!
#  validates :question, uniqueness: {scope: [:plan], 
#                                    message: I18n.t('helpers.answer.only_one_per_question')}
#                                    
#  # The answer MUST have a text value if the question is NOT option based or a question_option if
#  # it is option based. 
#  validates :text, presence: true, if: Proc.new{|a| 
#    (a.question.nil? ? false : !a.question.question_format.option_based?)
#  }
#  validates :question_options, presence: true, if: Proc.new{|a| 
#    (a.question.nil? ? false : a.question.question_format.option_based?)
#  }
#  
#  # Make sure the plan and question are associated with the same template!
#  validates :plan, :question, answer_for_correct_template: true
end