Asi que:
rails new single_t_inheritance_rails_test
ahora genero un modelo con scaffold generators:
rails generate model Setup setup_installations:string type:string
Es la forma más fácil de crear un proyecto.
Ahora migramos la base de datos:
bundle exec rake db:migrate
Vamos a usar herencias dentro del modelo, aquí esta la explicación en ingles con otro ejemplo
Ahora migramos la base de datos:
bundle exec rake db:migrate
Vamos a usar herencias dentro del modelo, aquí esta la explicación en ingles con otro ejemplo
Ahora queremos migrar de un supuesto producto 1 en nombre del cliente. que seria, Customer, por ejemplo.
rails generate migration AddCustomerToProduct1Setup
Y vamos a:
db/migrations/add_customer...setup.rb
cambiamos.
def change
add_column :setups :customer :string
end
bundle exec rake db:migrate
*tambien podemos hacer bundle exec rake:rollback y poner el nuevo atributo dentro de la primera migración, lo hago así para que saber como hacer en caso de que queramos agregar más atributos.
Una vez tenemos migrados los datos tenemos que crear las classes heredadas(Inherit classes).
En este caso.
single_t_inheritance_rails_test/app/models/product_1.rb
Y adentro
class Product_1 < Setup
attribute_accessor :customer
end
Y Ahora podemos probar si funciona en la consola dentro de la terminal y nuestro proyecto:
rails console
Setup.create(setup_installations:"instalation 4")
Funciona.
Setup.create(customer:"New Customer 1")
protected attribute....
No tendria que funcionar
Es correcto! No podemos guardarlo por que solo podemos acceder si creamos una nueva clase.
Setup.create(customer:"New Customer 1")
Funciona!
Ahora ya sabes como crear herencias :). Ahun así ten en cuenta los pros y contras de estas.