我有一些照片被通过will_paginate插件连续页拆分。 当您打开一张照片,然后返回到使用环节的所有照片,你总是回到第一页(例如显示5页上的照片,打开照片,点击一个链接以显示所有照片,并期望你在再5页,但你是第1页)。
现在,有没有什么方法来获得其照片属于页码?
我试图通过GET参数,但如果用户不进行任何更多操作这仅适用(例如信息的评论中,编辑照片,ECC)。
我有一些照片被通过will_paginate插件连续页拆分。 当您打开一张照片,然后返回到使用环节的所有照片,你总是回到第一页(例如显示5页上的照片,打开照片,点击一个链接以显示所有照片,并期望你在再5页,但你是第1页)。
现在,有没有什么方法来获得其照片属于页码?
我试图通过GET参数,但如果用户不进行任何更多操作这仅适用(例如信息的评论中,编辑照片,ECC)。
page = (number_of_records_before_RECORD / number_of_records_per_page) + 1
换一种说法。 如果您的照片有ID 40并有25条记录(假设一些记录已被删除),有20条记录每页之前:
page = (25 / 20) + 1 = 2
可以使用所选择的记录之前计数的记录数Model.count(:conditions => ['id < ?', record.id], :order => 'id')
正确的查询取决于其排序过滤器,你列出所有对象时,适用于该表。
页码高度依赖于你的搜索结果。 你的搜索可能有1,10,或100页取决于结果集和每页的项目数。
任何一个环节“显示所有照片”可以包含搜索和分页信息,使用GET参数,你所描述。 或存储,并通过cookie中检索,以便搜索结果继续下去,直到用户清除或选择新的搜索。
这里是另一种解决方案:will_paginate只是使用的查询字符串参数“search_field”和“页”; 您可以提取这些从Rails的PARAMS哈希值。 如果您在使用会话状态的保持跟踪,你可以在需要的时候在你的控制器代码,重新应用它们。
究竟如何管理,这将取决于你的应用程序。 在我正在该应用中,流动是这样的,我可以在一般上下文和上下文部件区分。 用户输入从成员#索引页的构件上下文。 所以,我只是设置会话[:member_context]在进入成员上下文; 例如,在成员#编辑。 然后,在成员#指数,我有以下代码:
if session[:member_context]
@search_field = session[:search_field]
@page = session[:page]
# toggle out of member context
session[:member_context] = nil
else
@search_field = params[:search_field]
@page = params[:page]
# record lastest search in case the user subsequently enters the member context
session[:search_field] = @search_field
session[:page] = @page
end
@members = Member.where(<use @search_field>).page(@page)
# and render ...
这在我的应用程序的伟大工程。