2013-08-16 1 views
0

Использование backgrid, отображающего список пользователей. Модель «Пользователь» с атрибутами first_name и last_name. Я написал метод full_name в пользовательской модели и отображал это полное имя в backgrid.Сортировать по 'first_name' вместо 'full-name' в Backgrid

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

На стороне сервера с использованием will_pagination. Когда я нажимаю на full_name для сортировки. Это дает ошибку - «ActiveRecord :: StatementInvalid (PG :: UndefinedColumn: ОШИБКА: колонка„full_name“не существует»

Так что мне нужно отсортировать по first_name вместо FULL_NAME Но я не знаю, как.. делать? Любые предложения?

ответ

0

на стороне сервера, это может быть обработано с помощью переопределения параметров «sort_by 'значение и порядок. Мы можем передавать несколько столбцов по порядку. В этом случае вместо «full_name» применяется порядок по первому и последнему имени. Например:

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

Вы разбираете с full_name сделать его сортировкой с first_name. не используйте full_name в вашем will_paginate и backgrid конфигураций.

+0

хочу, чтобы показать полное имя пользователя в таблице. Вопрос: как установить сортировку по имени first_name вместо full_name в backgrid? – kd12

+0

в таблице, если вы хотите добавить полное имя в свою таблицу, тогда вы должны добавить его в атрибут, доступный в вашей модели, и создать и запустить миграцию. – Sami

+0

Можете ли вы показать свой код will_paginate и back-grid. – Sami