Optimize with joins, order, distinct on current active records / sql query
Optimize with joins, order, distinct on current active records / sql query I am using ruby on rails 4 and postgres currently, and making distinct and sorting as in the code below. I just have a feeling is not right and not optimized because it seems to be doing all this with an array. How could I combine this all into one activerecords query ? 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 => pa...