Как стать автором
Обновить

Комментарии 2

Arel решает часть проблем, которые вы решаете с помощью quoted_table_name, избавляя при этом от необходимости писать sql:


scope.
  where(arel_table[:some_date].gt(3.days.ago)).
  where(OtherModel.arel_table[:some_number].lteq(smth))

На самом деле, на arel можно написать почти любое выражение sql, но иногда это может оказаться слишком громоздко. И документация оставляет желать лучшего.


Конечно, разные базы данных имеют разный функционал и даже свое надмножество SQL. При этом есть много проектов, которые действительно поддерживают разные СУБД. Например, Redmine. При разработке не публичных приложений будет странно, если команда собирается менять СУБД, при этом использует специфичный функционал. ActiveRecord тут вообще не причем.


По остальным моментам я упустил мысль уже на таймстэмпах — из кода непонятно, какие задачи решает приведенный код. Почему обновлять (updated|created)_at в базе "сильно проще"? touch тоже имеет свой контракт для разработчика, если следовать ему, то все будет работать.

Где купить такой велосипед?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации