2011-09-13 5 views
0

일련의 사진을 페이지 매김하는 동안 임의의 순서로 표시하려고합니다. 문제는 페이지 매기기의 각 페이지에서 무작위 배열이 다시 생성된다는 것입니다. 그래서 사용자는 페이지 1에서 이미 본 페이지 2의 사진을 볼 수 있습니다. 내 컨트롤러는 다음과 같습니다.레일 페이지 임의로 ActiveRecord

def index 
    @photos = Photo.order('random()').paginate(:per_page => 12, :page => params[:page]) 
end 

저는 잠시 생각해 왔으며 합리적인 해결책을 생각할 수 없습니다. 쉽게 할 수 있습니까? 꽤 일반적인 기능처럼 보이지만 무작위로 버려야 할 수도 있습니다. 생각?

답변

1

시드를 지정하여 임의성에 대한 순서를 소개 할 수 있습니다. 이것을 사용하면 후속 호출은 반복 가능한 순서 지정을 제공합니다.

각 데이터베이스는 시드 값을 지정하는 다른 방법을 제공합니다. 여기

@photos = Photo.order('rand(0.5)').paginate(:per_page => 12, :page => params[:page]) 

0.5, 예를 들어 MySQL은 rand() 함수 시드 것이다.

마찬가지로 Postgres에는 setseed() 기능이 있습니다. 어떤 데이터베이스를 사용하고 있는지 확실하지 않습니다. 어쨌든, 당신이 아이디어를 얻길 바랍니다.