ActiveScaffold найти таблицу соединений?
У меня есть общий поиск полей в ActiveScaffold работает. Я не уверен, как сделать этот более сложный поиск.
У меня есть две таблицы: "Учетная запись" и "Пользователь", и я хочу найти электронные письма и получить список соответствующих учетных записей. Поле электронной почты находится в поле Пользователь, а Аккаунт has_many: пользователи.
У меня проблемы с продумыванием того, как должен происходить запрос. В идеале я хотел бы сделать что-то вроде этого:
Account.where(email: 'search_term').all
или же
User.where(email: 'search_term').includes(:account).all
1 ответ
Если вы хотите искать данные из одной таблицы и возвращать результаты (в том числе) из другой, просто добавьте эти внешние столбцы как виртуальные столбцы:
в пользовательском контроллере:
active_scaffold :user do |conf|
conf.search.columns << :email
conf.list.columns << :account
#...
end
Вот и все, без запросов:)
если в результатах столбца аккаунта отображается код типа <# 23423.. это потому, что Active Scaffold не может сказать, как описать записи этого класса, поэтому вы говорите, как вы хотите в модели:
class Account << ActiveRecord::Base
....
def to_label
"cod: #{account_number}"
end