Вторичная сортировка столбца с помощью will_paginate - PullRequest
0 голосов
/ 20 марта 2020
Rails 6
will_paginate

В моей модели у меня есть следующее:

def index
  @books = Book.all.paginate page: params[:page], per_page: params[:per_page]
end

, которое даст мне массив объектов, каждый со следующими атрибутами:

name
author_id

Так что, на мой взгляд, я могу сделать следующее:

th= sortable "name", "Name"
th= sortable "author_id", "Author ID"

Но я действительно хочу показать имя автора, которое я могу получить из объекта книги, следующим образом:

book.author.name

Как книга принадлежит автору

Как сделать столбец в таблице с именем автора и сделать этот столбец сортируемым?

1 Ответ

1 голос
/ 20 марта 2020

Вы пробовали что-то подобное?

controllers / books_controller.rb

  def index
    books_with_author = Book.all.map { |book|
      book.attributes.merge(author_name: book.author.name)
    }

    @books = books_with_author.paginate page: params[:page], per_page: params[:per_page]
  end

Также вы можете определить свою модель для будущего использования

модели / книги. рб

def author_name
  self.author.name
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...