Пытаюсь реализовать логику поиска, которая использует ассоциации с STI, но у меня возникла проблема, когда в качестве подкласса выбираются не записи STI, а родитель.
Пример:
class Users
end
class Artist < User has many :agents, :through => :agents artists end
class Agent < User has many :artists, :through => :agents artists end когда я выполняю поиск по запросу "компания агентов художников", поиск выполняется на основе агентов как пользователей, а не как агентов:
select * from users WHERE users.company LIKE
скорее, чем
select * from users AS agents WHERE agents.company LIKE
Интересно, могу ли я предотвратить эту проблему на уровне класса ActiveRecord (например, в ассоциации я думал, что если бы вы могли указать, что агенты будут загружены :as=>:agent или что-то в этом роде), или если бы я нужно исправить searchlogic или что еще я мог бы сделать для этого.
Еще один вариант, который пришел мне в голову, и я с ужасом отношусь к этой идее, состоит в том, чтобы добавить поле в пользовательскую таблицу, содержащее список агентств человека. например, users.agencies => Имя одного агентства, Имя второго агентства