1

使用 backgrid,显示用户列表。具有 first_name 和 last_name 属性的“用户”模型。我已经在用户模型上编写了方法 full_name 并将该全名显示到 backgrid 中。

{
  name: "full_name",
  label: "Name",
  editable: false,
  cell: 'string'
}

在服务器端使用 will_pagination。当我单击 full_name 进行排序时。它给出错误-“ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column "full_name" does not exist"。

所以我需要对 first_name 而不是 full_name 进行排序。但是我不知道怎么办?有什么建议么?

4

2 回答 2

1

您正在排序,full_name使其可排序first_name。不要full_name在你的 will_paginate 和 backgrid 配置中使用。

于 2013-08-16T08:16:38.703 回答
0

在服务器端,这可以通过覆盖参数“sort_by”的值和顺序来处理。我们可以按顺序传递多个列。在这种情况下,而不是'full_name',对first_name 和last_name 应用顺序。例如:

User.paginate(page: params[:current_page], per_page: params[:pageSize]).order("first_name asc, last_name asc")
于 2013-08-23T07:03:05.337 回答