Hello.
I've read about examples on inheritance with rails.
Here is an example:
The way is to add a type field in the table.
So if I have an Animal class with an attribute name, I can inherit
from this class like:
Dog < Animal, Cat < Animal, and so on.
With the type field in the table I can do Dog.all, Cat.all having
automaticaly all dogs, all cats, etc.
But what if I want to add some other attributes to Dog or Cat classes?
In the example above all classes have only name attribute.
What if I want inherit from Animal extending attributes and adding,
for example, an attribute like canFly? for inherited classes?
It creates a table for every inherited class.
So in my example I must have a table animals, a table dogs and a table cats.
It's the same if I create different models: Animal, Dog, Cat without
using inheritance.
No, it creates an animals table, and then creates extra linked tables for any extra attributes. So you’d create an animals table with all the shared attributes, then a dogs table that only has the extra attributes on there. So you don’t have any duplication, and don’t have a load of nullable columns on a super table.