我有一个名为Employee
的模型,它有十几个字段,因此一次显示所有字段是不切实际的。我想允许用户通过使用多个选择框或复选框列表来选择显示哪些列,其结果理想地存储在内存中,而不是存储在模型中,因为没有任何内容可以长期保存,并且可访问循环以显示适当的列。
视图的示例可能如此:
<% for employee in @employees %>
<tr>
<% for col in col_list %>
<td><%= employee.col %></td>
<% end %>
</tr>
<% end %>
其中col_list
是用户选择的列列表。
答案 0 :(得分:1)
如上所述,此功能没有什么特别复杂的。
如果您的用户已在某处登录,则可以在某个位置为用户存储列表的序列化列表。列表列表可能应该进行清理,以避免显示私有列。
如果用户未登录,或者您想要一种不太持久的方法,只需将列表存储在cookie中即可。
如果未设置列表(也就是cookie为空),请将其设置为默认值或只显示默认的属性列表。
答案 1 :(得分:1)
更好的方法可能是输出服务器端的所有列,并在客户端使用javascript进行过滤。有几个库,例如jQuery Datatables。
如果您想记住用户首选项,可以将其与persisted to the session或Redis的首选项模型结合使用,而不是主要的RDBMS。
(是的,你可以使用未存储在数据库中的对象的模型。它为你提供了所有的验证,表单和参数绑定等功能。)