SQL не является «плохой практикой» per se . Системы баз данных имеют множество встроенных способов SQL, которые выполняются гораздо медленнее и сложнее при написании и поддержке, если они написаны на Ruby. Как и аналитические функции Oracle.
Тем не менее, ActiveRecord довольно просто написать и , вы, вероятно, не получите повышение производительности, просто используя SQL-запрос . По крайней мере, если запрос, который вы пишете, похож на запрос, который ActiveRecord написал бы в любом случае! ;)
Возможно, вам следует попытаться работать с ActiveRecord и прибегать к SQL, только если вы столкнулись с проблемами, которые не можете решить другим способом. Таким образом, вы сохраняете свой код простым, пока вам не понадобится сделать это по-другому (т.е. не «оптимизировать рано»).
Обычно я пытаюсь заставить вещи работать в ActiveRecord (или DataMapper, или Sequel, или что-то еще), но я определенно прибегал к finder_sql, когда работу нужно было выполнить быстро, и я не мог добраться туда, куда хотел, используя «сахар» ORM , В других случаях я основывал объект rails на одном массивном представлении в базе данных.
Надеюсь, это поможет.
: D