Chris.Mohr
(Chris.Mohr)
1
Is there a way to set the base class to abstract? or otherwise enforce
that no one can create a "Pet"?
Pet < ActiveRecord
Dog < Pet
Pig < Pet
I've tried:
class Pet < ActiveRecord::Base
validates_presence_of :type
end
but I get an error about
../vendor/rails/activerecord/lib/active_record/validations.rb:74:
warning: Object#type is deprecated; use Object#class
Chris_T
(Chris T)
2
Chris.Mohr wrote:
Is there a way to set the base class to abstract? or otherwise enforce
that no one can create a "Pet"?
Pet < ActiveRecord
Dog < Pet
Pig < Pet
I've tried:
class Pet < ActiveRecord::Base
validates_presence_of :type
end
but I get an error about
../vendor/rails/activerecord/lib/active_record/validations.rb:74:
warning: Object#type is deprecated; use Object#class
>
There may be other (better) ways but the way I've done it is:
def validate
errors.add_to_base "You can not have an item of the base class,
Pet" unless self.class != Pet
end
CT
Chris,
Try this (untested and completely hypothetical):
class Pet < ActiveRecord::Base
elf.abstract_class = true
end
Off the top of my head, I don't know what happens if you try and instantiate one of these though.
Ashley