Sha256: 326df1d9d8f874a5155e9eb0e26e548c896637efad03a86132cdaea84000b788

Contents?: true

Size: 908 Bytes

Versions: 2

Compression:

Stored size: 908 Bytes

Contents

module CustomFields
  class CustomFieldBase < ActiveRecord::Base

    serialize :select_options
    validates_presence_of :name,
      :message => 'Please specify the field name.'
    validates_presence_of :select_options_csv,
      :if => "self.style.to_sym == :select",
      :message => "You must enter options for the selection, separated by commas."

    def self.inherited(chld)
      super(chld)
      chld.class_eval <<-FOO
        validates_uniqueness_of :name, :scope => [:user_id, :organization_id], :message => 'The field name is already taken.'
        validates_inclusion_of :style, :in => ALLOWABLE_TYPES, :message => "Invalid style.  Should be #{ALLOWABLE_TYPES.join(', ')}."
      FOO
    end
  
    def select_options_csv
      (self.select_options || []).join(",")
    end

    def select_options_csv=(csv)
      self.select_options = csv.split(",").collect{|f| f.strip}
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
has_custom_fields-0.0.2 lib/custom_fields/custom_field_base.rb
has_custom_fields-0.0.1 lib/custom_fields/custom_field_base.rb