Самое простое решение - просто объединить массивы, а затем просто использовать Array
методы сортировки некоторого вида:
@accounts = (LegacyAccount.all + Account.all).sort{|x,y| x.name <=> y.name}
Возможно, вы могли бы написать собственный метод поиска в вашей модели Account
, чтобы сделать этопроще, так что вы можете просто позвонить Account.find_all
или что-то еще.
Существует еще одно возможное решение с использованием SQL:
@accounts = Account.find_by_sql("SELECT * FROM accounts UNION SELECT * FROM legacy_accounts")
, которое работает в терминах чистого SQL, но яне уверен насчет Rails.Я предполагаю, что он будет обрабатывать все LegacyAccounts, как если бы они были обычными учетными записями.Я не уверен, что произойдет, если в LegacyAccounts есть столбцы, которых нет в Accounts.
В качестве альтернативы вы можете попробовать кое-что отсюда: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html
Последние 2 решения сложнытак что я бы попробовал их, только если ты имеешь в виду что-то очень конкретное.