Ruby on rails 按'排序;名字';而不是';全名';在后台

Ruby on rails 按'排序;名字';而不是';全名';在后台,ruby-on-rails,will-paginate,backgrid,Ruby On Rails,Will Paginate,Backgrid,使用backgrid,显示用户列表。”具有名字和姓氏属性的用户模型。 我在用户模型上编写了方法full_name,并将该全名显示到backgrid中 { name: "full_name", label: "Name", editable: false, cell: 'string' } 在服务器端使用will_分页。当我点击全名排序时。 它给出错误-“ActiveRecord::StatementInvalid(PG::UndefinedColumn:error:列“全名”不

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

{
  name: "full_name",
  label: "Name",
  editable: false,
  cell: 'string'
}
在服务器端使用will_分页。当我点击全名排序时。 它给出错误-“ActiveRecord::StatementInvalid(PG::UndefinedColumn:error:列“全名”不存在”


因此,我需要按名字而不是全名排序。但我不知道怎么做?有什么建议吗?

您正在使用
全名进行排序
使用
名字进行排序
。不要在您的分页和后网格配置中使用
全名

您正在使用
全名
进行排序使用
first\u name
。不要在您的will\u paginate和backgrid配置中使用
full\u name

在服务器端,这可以通过覆盖参数“sort\u by”值和顺序来处理。我们可以按顺序传递多个列。在这种情况下,不使用“full\u name”,而是对first\u name和last\u name应用顺序。 例如:

User.paginate(page: params[:current_page], per_page: params[:pageSize]).order("first_name asc, last_name asc")

在服务器端,这可以通过重写参数“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")

要在表中显示用户的全名。问题是-如何在backgrid中设置按名字排序而不是按全名排序?在表中如果要在表中添加全名,则必须将其添加到模型中可访问的属性中,并生成并运行迁移。@users=user.paginate(page:params[:current\u page]顺序(“#{params[:sort_by]}{params[:order]}”)我想在用户网格中显示全名。在这个问题中,你说“我需要按名字而不是全名排序”,现在你说“我想在用户网格中显示全名”。我不明白您想做什么。这意味着我想在用户backgrid的“name”列中显示全名的值,但在排序时,请按此列“name”的首名排序。是否清楚?要在表中显示用户的全名。问题是-如何在backgrid中设置首名而不是全名的排序?如果要添加,请在表中表中的全名,然后必须将其添加到模型中可访问的属性中,并生成和运行迁移。@users=User.paginate(page:params[:current_page],per_page:params[:pageSize]).order(“#{params[:sort_by]}#{params[:order]}”)我想在用户网格中显示全名。在问题中,你说“我需要按名字而不是全名排序”,现在你说“我想在用户网格中显示全名”。我不明白你想做什么。这意味着我想在用户backgrid的“name”列中显示全名的值,但在排序时,按此列“name”的名字排序。清楚吗?