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,然后是其他用户的记录