1
我有其上使用的Rails 3的點播服務應用: 19" 的觸摸屏,10" 寵物,家畜,7" 平板PAGINATE #rows
我使用will_paginate /雷用於顯示數據的列表。
但我怎麼可以配置它應該有多少個項目每頁取決於屏幕大小顯示?
如20線19" 顯示,11條線路的10" 顯示器,8號線的7 「display
我有其上使用的Rails 3的點播服務應用: 19" 的觸摸屏,10" 寵物,家畜,7" 平板PAGINATE #rows
我使用will_paginate /雷用於顯示數據的列表。
但我怎麼可以配置它應該有多少個項目每頁取決於屏幕大小顯示?
如20線19" 顯示,11條線路的10" 顯示器,8號線的7 「display
您可能會考慮首先向您的應用程序請求通過Ajax傳遞相關的navigator
和/或screen
信息,並使用該信息決定Rails中的後端。
要獲取瀏覽器/操作系統信息,請參閱Javascript的navigator
對象並獲取有關屏幕尺寸的信息,檢查Javascript的screen
對象。
你的Ajax控制器行動可能的導航/屏幕信息JSON版本存儲session
和ApplicationController
一個before_filter
可以用來設置@per_page
在整個應用程序的paginators使用。
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
到雷的尋呼機。
在這種情況下,使用rails request.env ['HTTP_USER_AGENT']而不是javascript會容易得多。 –
也許,但是OP對於屏幕的**大小**似乎也很感興趣,它在HTTP頭文件中不可靠。 – deefour
謝謝你的建議。所以我使用了jQuery.post(「/ screensize」,{width:screen.width,height:screen.height});並將其存儲在會話變量中 – Klaus