Оптимизация с помощью объединений, упорядочения, различимых по текущим активным записям / SQL-запрос - PullRequest
0 голосов
/ 01 июля 2018

В настоящее время я использую ruby ​​на rails 4 и postgres, и делаю их по-разному и сортирую, как в коде ниже.

Я просто чувствую, что это неправильно и не оптимизировано, потому что кажется, что он делает все это с массивом.

Как я могу объединить все это в один запрос activerecords?

ads1 = Advertisement.where(property_id: nil)
                    .where(target_address_city: [property.address_city, ""], 
                           target_address_state: [property.address_state, ""], 
                           target_address_country_id: property.address_country_id)              
# return advertisement belongs to the property
ads2 = management.property.advertisements
#combine both results
combine_ads = ads1 + ads2
#remove ads duplicate
uniq_ads = combine_ads.uniq { |ads| ads.id}
# sort by created_at desc
uniq_ads = uniq_ads.sort_by { |ads| -ads[:id]}
# do pagination
final_ads = uniq_ads.paginate(:page => params[:page], :per_page => params[:page_limit])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...