我有一个 Rails 3 内部应用程序,用于:19 英寸触摸屏、10 英寸 iPad、7 英寸平板电脑
我正在使用 will_paginate / kaminari 来显示数据列表。
但是如何根据屏幕大小配置每页显示多少项目?
例如,19" 显示器 20 行,10" 显示器 11 行,7" 显示器 8 行
我有一个 Rails 3 内部应用程序,用于:19 英寸触摸屏、10 英寸 iPad、7 英寸平板电脑
我正在使用 will_paginate / kaminari 来显示数据列表。
但是如何根据屏幕大小配置每页显示多少项目?
例如,19" 显示器 20 行,10" 显示器 11 行,7" 显示器 8 行
您可能会考虑在通过 Ajax 传递相关navigator
和/或screen
信息并使用该信息来决定 Rails 中的后端对您的应用程序的第一个请求。
要获取浏览器/操作系统信息,请查看 Javascript 的navigator
对象,要获取有关屏幕尺寸的信息,请查看 Javascript 的screen
对象。
您的 Ajax 控制器操作可以将导航器/屏幕信息的 JSON 版本存储到session
,并且可以使用before_filter
in来设置在整个应用程序的分页器中使用。ApplicationController
@per_page
before_filter do
@per_page = 11 if !session[:navigator][:userAgent].match(/iPad/).nil?
@per_page = 8 if !session[:navigator][:userAgent].match(/Android/).nil? && session[:screen][:width] < 1000
# ...
end
然后你会传递@per_page
给 kaminari 的寻呼机。