magic_field.rb
840 Bytes
class MagicField < ActiveRecord::Base
has_many :magic_field_relationships, :dependent => :destroy
has_many :owners, :through => :magic_field_relationships, :as => :owner
has_many :magic_attributes, :dependent => :destroy
validates_presence_of :name, :datatype
validates_format_of :name, :with => /\A[a-z][a-z0-9_]+\z/
def type_cast(value)
begin
case datatype.to_sym
when :check_box_boolean
(value.to_int == 1) ? true : false
when :date
Date.parse(value)
when :datetime
Time.parse(value)
when :integer
value.to_int
else
value
end
rescue
value
end
end
# Display a nicer (possibly user-defined) name for the column or use a fancified default.
def pretty_name
super || name.humanize
end
end