Rails 3, will_paginate, random, repeating records, Postgres, setseed failure

泄露秘密 提交于 2019-11-30 14:57:24

Not a postgres person but ... I'd try

Movie.connection.execute "select setseed(0.5)"
Movie.where(...).order('random()').page(params[:page]).per_page(15)

With regards to Array#shuffle not taking a seed, it uses Kernel.rand so you can seed it using Kernel.srand

try passing an array of fields to select:

@movies = movies.select(['setseed(.5)', 'some_movie_attribute']).order('random()').page(params[:page]).per_page(16)

Some result is using some_movie_attribute, which isn't being selected by your query, and so isn't available. Adding it as one of the select fields should resolve this one.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!