1

我有一个 Rails 3 内部应用程序,用于:19 英寸触摸屏、10 英寸 iPad、7 英寸平板电脑

我正在使用 will_paginate / kaminari 来显示数据列表。

但是如何根据屏幕大小配置每页显示多少项目?

例如,19" 显示器 20 行,10" 显示器 11 行,7" 显示器 8 行

4

1 回答 1

2

您可能会考虑在通过 Ajax 传递相关navigator和/或screen信息并使用该信息来决定 Rails 中的后端对您的应用程序的第一个请求。

要获取浏览器/操作系统信息,请查看 Javascript 的navigator对象,要获取有关屏幕尺寸的信息,请查看 Javascript 的screen对象。

您的 Ajax 控制器操作可以将导航器/屏幕信息的 JSON 版本存储到session,并且可以使用before_filterin来设置在整个应用程序的分页器中使用。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 的寻呼机。

于 2012-09-11T13:02:52.353 回答