1 # == Schema Information
2 # Schema version: 20100224042103
4 # Table name: active_forms
9 # lock_version :integer
10 # operators_plus :boolean
11 # operators_minus :boolean
12 # term_number :integer
15 # single_term_min :integer
16 # single_term_max :integer
17 # use_coefficient :boolean
21 class SquareRootArithmeticEditForm < ActiveForm
22 acts_as_problem :operators => %w[plus minus], :term_number => true
24 column :min, :type => :integer
25 column :max, :type => :integer
26 column :single_term_min, :type => :integer
27 column :single_term_max, :type => :integer
28 column :use_coefficient, :type => :boolean
29 column :use_power, :type => :boolean
31 validates_presence_of :min
32 validates_presence_of :max
33 validates_presence_of :single_term_min
34 validates_presence_of :single_term_max
36 with_options :only_integer => true, :allow_blank => true do |problem|
37 problem.validates_numericality_of :min, :greater_than_or_equal_to => 1
38 problem.validates_numericality_of :max, :greater_than_or_equal_to => 1
39 problem.validates_numericality_of :single_term_min, :greater_than_or_equal_to => 1
40 problem.validates_numericality_of :single_term_max, :greater_than_or_equal_to => 1
47 :single_term_min => single_term_min,
48 :single_term_max => single_term_max,
49 :term_number => term_number,
50 :operators => operators,
51 :use_coefficient => use_coefficient,
52 :use_power => use_power,
56 def set_options(options)
57 hash = ActiveSupport::JSON.decode(options)
58 self.min = hash["min"]
59 self.max = hash["max"]
60 self.single_term_min = hash["single_term_min"]
61 self.single_term_max = hash["single_term_max"]
62 self.term_number = hash["term_number"] if hash["term_number"]
63 self.operators = hash["operators"] if hash["operators"]
67 check_min_max(:min, :max)
68 check_min_max(:single_term_min, :single_term_max)