У меня есть модуль, который я включаю в несколько моделей с таким содержанием:
self.class.find_by_foo(bar)
Все было хорошо, пока я не начал использовать STI. Эта строка всегда должна генерировать запрос
select * from table where foo=bar"
и не
select * from table where foo=bar AND type="Whatever"
Есть ли простой способ избежать этого?
Я подумал о двух решениях. Идем вверх по иерархии классов, пока не найду самый верхний класс перед ActiveRecord :: Base
, или запустите запрос вручную, например:
self.class.find_by_sql("select * from #{self.class.table_name} where foo=bar")
Мне не нравится ни одно решение. Есть лучший вариант?