Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre geração de models

Eu pude notar que quando geramos uma model como o comando...

rails generate model <nome_da_model> <campos_da_model>

... a classe gerada não possui as propriedades que especifiquei nos campos da model.

class Produto < ApplicationRecord
end

Eu sei que elas vão para a migration e, que ao acessar pelo rails console, as propriedades estão disponíveis, ainda que não estejam declaradas na própria classe, mas imagine que depois eu preciso alterar a minha classe de model, ou mesmo passaram-se alguns meses em um projeto longo e eu preciso lembrar o que a classe possui como propriedades. A única referência que tenho é a própria base de dados e a migration?

O que leva a minha dúvida: existe algum meio de gerar a model com o comando rails generate model e os campos serem inclusos na classe de modelo para que fique mais explicito o que faz parte dela?

class Produto < ApplicationRecord
    def initialize nome, quantidade, valor
        @nome = nome
        @quantidade = quantidade
        @valor = valor
    end
end

Muito obrigado! :]

1 resposta
solução!

Oi Daniel, tudo bem? Até onde sei, não é possível fazer isso por padrão. O maior problema dessa abordagem é a evolução desse código. Você gera um model, tudo bem até ai, mas depois, você gera uma migration que evolui aquele model, como o Rails vai gerenciar essa evolução do que existe no seu banco para o que existe no seu model?

E se, no banco, você remover um campo, o Rails deveria alterar seu código também dinamicamente? Isso poderia gerar uma discussão infinita. No geral, acredito ser mais simples observar a estrutura do banco de em uma única visão do que sair verificando cada modelo.

Talvez alguém possa ter construído algum gerador alternativo que possa fazer, porém, nunca vi comentários.