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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software