使用HAML视图对下拉菜单数据进行排序菜单数据



我的观点之一。这里有人可以帮助我找出如何对正在传递的数据进行分类?我需要能够以非常特定的方式组织数据,因此通过ASC或DESC订单进行排序无济于事。有人知道如何实现这一目标吗?如果是这样,是否有指南显示它去的地方?我尝试了多件事,似乎没有用。也许我有错误的方法?

- fields = %w(title description)
- sortable = %w(title)
= render :partial => 'shared/index', :locals => { :klass => PermissionGroup, :objects => @permission_groups, :fields => fields, :sortable => sortable }

这就是我在控制器中所拥有的:

class PermissionGroupsController < ApplicationController
 standard_controller_actions :index
 standard_controller_actions :show
 standard_controller_actions :new, :create
 standard_controller_actions :edit, :update
 standard_controller_actions :destroy
 standard_controller_actions :autocomplete
 standard_controller_actions :history
 standard_controller_actions :url_list
end

这就是我在助手上的东西:

module PermissionsHelper
def objects_permission_groups(object)
  if object.new_record? and
    permission_groups_with_create = current_user.permission_groups_with(:create) and
   permission_groups_with_create.count == 1
    object_permission_groups = permission_groups_with_create
  else
    object_permission_groups = object.permission_group_ids
  end
 object_permission_groups
end
def permission_group_options(_)
 PermissionGroup.all.map { |g| [g.title.titleize, g.id.to_s] }
end

下拉菜单显示:

b
c
d
a
x

但我希望它显示:

x
d
a
c
b

它不是ASC或DESC订单...就像我想以硬编码方式对的一组已知的事物一样。

假设您想硬编码特定的分类顺序,我看到的最多解决的方式是:

a)将整数sort_order列添加到模型的数据库表

b)填充物品的排序顺序(例如x将具有值1,d具有值2等) - 如果您希望将其部署到生产服务器,则可以通过迁移进行操作。

c)按该列订购...

未来的nice-Interfaces可以让您在浏览器中编辑drag/drop javaScript(或者只是手动键入数字)。

最新更新