Вы можете ввести некоторую упорядоченность в случайность, указав начальное число.Используя это, последующие вызовы дадут вам повторяемый порядок.
Каждая база данных предлагает свой способ указать начальное значение.Например, в MySQL
@photos = Photo.order('rand(0.5)').paginate(:per_page => 12, :page => params[:page])
Здесь 0,5 будет начальным числом для функции rand()
.
Аналогично, у Postgres есть функция setseed()
.Я не уверен, какую базу данных вы используете.В любом случае, я надеюсь, что вы поняли идею.