if (feedback.id.modulo(2) == 0)
// How can I apportion 75% will be tagged as "good" and 25% as "ok" here?
else
feedback.update_attributes(status: "very good")
end
Это хорошо, но с каждым отзывом вы будете извинять 1 запрос на обновление, я думаю, вы можете сделать его лучше
feed_back_ids = FeedBack.ids
FeedBack.where(id: feed_back_ids.pop(feed_back_ids.length/2)).update_all(status: "very good")
FeedBack.where(id: feed_back_ids.pop(feed_back_ids.length*3/4)).update_all(status: "good")
FeedBack.where(id: feed_back_ids).update_all(status: "ok")
Если вы хотите сделать это случайно
feed_back_ids = FeedBack.ids.shuffle
FeedBack.where(id: feed_back_ids.pop(feed_back_ids.length/2)).update_all(status: "very good")
FeedBack.where(id: feed_back_ids.pop(feed_back_ids.length*3/4)).update_all(status: "good")
FeedBack.where(id: feed_back_ids).update_all(status: "ok")