我想让用户能够对显示在分页表中的许多选定(带复选框)项目进行通用操作。
我想知道当用户通过分页链接导航到其他表格页面时,我将如何跟踪前一个表格页面的选定项目。
我使用 kaminari 进行分页。
有任何想法吗?
我想让用户能够对显示在分页表中的许多选定(带复选框)项目进行通用操作。
我想知道当用户通过分页链接导航到其他表格页面时,我将如何跟踪前一个表格页面的选定项目。
我使用 kaminari 进行分页。
有任何想法吗?
如果您使用任何形式,那么您可以使用多步形式。你可以从
http://railscasts.com/episodes/217-multistep-forms
但是请确保您需要以这种方法将表单对象存储在会话中,因此如果您在表单中设置了 500 个字段,那么 cookie 就会溢出。请查看您的申请,然后再决定。
您可以使用的一种方法是隐藏字段或只是一个 javascript 变量,每当用户选择/取消选择表中的项目时,您使用一些 javascript 更新该变量。
如果您的页面导航链接使用 AJAX 仅更新您的表格和导航链接,您的页面仍将包含所选项目的隐藏字段或变量。在表更新时,您还必须根据在隐藏字段或变量中选择的内容设置表项的选定状态。
是的,它不漂亮。
您可能需要考虑一些用于 SPA(单页应用程序)的客户端 MV* 框架,因为使用 ad-hoc javascript 很快就会变得混乱。
我指的 MV* 框架是 Backbone、Ember、Angular、Knockout、Batman 等。您的应用程序本质上变成了单个缩小的 javascript 资产、单个缩小的样式表,加上图像和客户端/服务器只是 AJAX/JSON api。这些框架为您的客户端代码提供结构,并支持将视图绑定到对象状态并与服务器同步。
正是客户端架构和原生移动应用程序的这种转变使得像 Sinatra 这样的极简服务器端框架越来越受欢迎,因为像 Rails(是的,我的意思是 Rails 4.0)这样的框架不再为开发现代 Web 提供“rails”或约定和移动应用程序。
查看 TodoMVC以比较 MV* 客户端框架,然后选择一个适合您的风格和要求的框架。在考虑了所有主要的之后,我的务实(和固执己见)的选择是 Backbone.js + Backbone.Marionette + Coffeescript,因为你根本不会被画到角落里。没有不尊重他人的意思。
我对 MV* 框架的建议是: