Wice grid 自定义顺序按代码忽略SQL顺序

Wice grid 自定义顺序按代码忽略SQL顺序,wice-grid,Wice Grid,我试图使用自定义顺序来表示任意的初始顺序 # GET /sequences def index @sequences_grid = initialize_grid(Sequence, enable_export_to_csv: false, per_page: 10, custom_order: { 'sequences.username' => "CASE WHEN username LIKE '#{current_user.us

我试图使用自定义顺序来表示任意的初始顺序

# GET /sequences
def index
@sequences_grid = initialize_grid(Sequence,
  enable_export_to_csv: false,
              per_page: 10,
          custom_order: {
   'sequences.username' => "CASE WHEN username LIKE '#{current_user.username}' THEN 0 ELSE 1 END, username"
                        },
                  name: 'seq_g1')
end
其想法是让当前用户的记录渗透到列表的顶部

《用户指南》指出,“键是数据库列的完全限定名,并为ORDER BY子句中使用的所需SQL块赋值”

在数据库编辑器中运行时,SQL代码可以正常工作,但网格没有显示所需的顺序

对于任何wice_网格问题,日志都是无提示的,报告的请求包括:

10:10:35 web.1  |   Sequence Load (0.3ms)  SELECT distinct username FROM "sequences"  ORDER BY username asc
10:10:35 web.1  |   Sequence Load (0.3ms)  SELECT distinct classtype FROM "sequences"  ORDER BY classtype asc
10:10:35 web.1  |   Sequence Load (0.2ms)  SELECT distinct description FROM "sequences"  ORDER BY description asc
10:10:35 web.1  |   Sequence Load (0.2ms)  SELECT distinct sequencenumber FROM "sequences"  ORDER BY sequencenumber asc
10:10:35 web.1  |   Sequence Load (0.2ms)  SELECT distinct target FROM "sequences"  ORDER BY target asc
10:10:35 web.1  |   Sequence Load (0.2ms)  SELECT distinct indicator FROM "sequences"  ORDER BY indicator asc
我怀疑SQL代码可能在某种程度上被破坏了,但在我深入挖掘之前,我认为可能有人遇到了类似的问题

问候,,
Tom。

经过一番胡闹之后,我发现SQL还可以,但您需要指定顺序以及自定义顺序

《用户指南》提供了一个可能有点误导的示例

@hosts_grid = initialize_grid(Host,
  custom_order: {
 'hosts.ip_address' => 'INET_ATON(hosts.ip_address)'
                })
但这些例子提供了

@status_grid1 = initialize_grid(Status,
  order: 'statuses.name',
  custom_order: {
    'statuses.name' => 'length( ? )'
  }
)
因此,下面的内容满足了我的要求

# GET /sequences
def index
@sequences_grid = initialize_grid(Sequence,
  enable_export_to_csv: false,
              per_page: 10,
                 order: 'sequences.username',
          custom_order: { 'sequences.username' => "CASE WHEN sequences.username LIKE '#{current_user.username}' THEN 0 ELSE 1 END, username, updated_at" },
       order_direction: 'desc',  
                  name: 'seq_g1')
end
。。。i、 e.它创建了一个列表,其中当前用户的记录首先以降序排列,然后是更新的_at,然后是其他用户的记录