Rails предоставляет нам некоторые возможности, которые кажутся волшебными. Отсутствие необходимости импортировать модули, которые мы хотим использовать, метапрограммирование языка Ruby, генераторы, присутствующие во фреймворке… Среди прочих. Для меня самый большой контраст с другими языками — это то, как можно сделать много, написав так мало, если сравнивать. И это тоже имеет свою обратную сторону.
Когда мы создаем новую модель, нам не нужно объявлять в рубиновом файле (model.rb
) все поля, присутствующие в этой модели. Как правило, мы упоминаем только те поля, которые нуждаются в валидации или присутствуют в каком-либо методе для данной модели. И каждый раз, когда мы хотим узнать какое-то поле, которое не упоминается: ctrl + f
в schema.rb
. Что не совсем быстрый и приятный способ, как хотелось бы, тем более, когда поле упоминается в разных таблицах, таблица упоминается в других таблицах, индексах и так далее.
С помощью gem
(Annotate)[https://github.com/ctran/annotate_models] мы можем легко добавить комментарий в конце кода в model.rb
со структурой таблицы, ссылающейся на эту модель, в том же формате, который мы находим в schema.rb
, что-то вроде:
# == 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)
#
Замечательно, не правда ли?