summaryrefslogtreecommitdiffstats
path: root/app/models/custom_field.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/custom_field.rb')
-rw-r--r--app/models/custom_field.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb
index 0ad8b4ce0..93e662785 100644
--- a/app/models/custom_field.rb
+++ b/app/models/custom_field.rb
@@ -155,6 +155,22 @@ class CustomField < ActiveRecord::Base
find(:all, :conditions => ["is_for_all=?", true], :order => 'position')
end
+ # Returns an instance of the given subclass name
+ def self.new_subclass_instance(class_name, *args)
+ klass = nil
+ begin
+ klass = class_name.to_s.classify.constantize
+ rescue
+ # invalid class name
+ end
+ unless subclasses.include? klass
+ klass = nil
+ end
+ if klass
+ klass.new(*args)
+ end
+ end
+
def type_name
nil
end