jeudi 25 janvier 2018

Rails Select one random listings for premium users

In my rails app, I have Users and Listings. The Listings belong to a User. Listing has user_id and its filled with users id who is creating the listing.

A user can be a premium user, gold user or silver user.

What I want is for each premium user, select one random listing to show in premium listings.

I can do it in O(n**2) time or n+1 query as follow:

users_id = User.where(:role => "premium").pluck[:id]
final_array = Array.new
final_array << Listing.where(:user_id => users_id).sample(1)
final_array

Is there a better way of doing this?




Aucun commentaire:

Enregistrer un commentaire