DEV Community

Giovani Sousa
Giovani Sousa

Posted on • Originally published at giovanisleite.dev

1

Cansado de conferir o schema.rb

O Rails nos dá algumas facilidades que parecem mágica. A não-necessidade de importar os módulos que queremos usar, a metaprogramação da linguagem Ruby, os generators presentes no framework... Entre outras. Para mim, o maior contraste com outras linguagens é como fazer muito escrevendo tão pouco quando comparado. E isso tem o seu lado ruim também.

Quando criamos um novo modelo, não precisamos declarar no arquivo ruby (model.rb) todos os campos presentes naquele modelo. Geralmente, só mencionamos os campos que precisam de alguma validação ou que estão presentes em algum método para aquele modelo. E toda vez que queremos saber algum campo que não é mencionado: ctrl + f no schema.rb. O que não é exatamente a forma mais rápida e agradável que gostaríamos, ainda mais quando o campo é mencionado em diferentes tabelas, a tabela é mencionada em outras tabelas, indexes e etc.

Com a gem (Annotate)[https://github.com/ctran/annotate_models], podemos facilmente adicionar um comentário ao fim do código no model.rb com a estrutura da tabela referente aquele model, no mesmo formato que encontramos no schema.rb, algo tipo:

# == Schema Info
#
# Table name: line_items
#
#  id                  :integer(11)    not null, primary key
#  quantity            :integer(11)    not null
#  product_id          :integer(11)    not null
#  unit_price          :float
#  order_id            :integer(11)
#
Enter fullscreen mode Exit fullscreen mode

Maravilha, né?

Obama dizendo "Special... Beautiful"

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (0)

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay