我有一个Rails 3内部应用程序,用于: 19英寸触摸屏,10英寸iPad,7英寸平板电脑
我使用will_paginate / kaminari显示数据列表。
但是,如何根据屏幕尺寸配置每页应显示的项目数?
e.g。 19“显示器20行,10”显示器11行,7“显示器8行
答案 0 :(得分:2)
您可以考虑第一次向您的应用程序请求通过Ajax传递相关的navigator
和/或screen
信息,并使用该信息来决定Rails中的后端。
要获取浏览器/操作系统信息,请参阅Javascript的navigator
对象并获取有关屏幕尺寸的信息,请检查Javascript的screen
对象。
您的Ajax控制器操作可以将导航器/屏幕信息的JSON版本存储到session
,before_filter
中的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的寻呼机。