Prawn PDF создает записи только для текущего пользователя - PullRequest
0 голосов
/ 02 мая 2019

Я недавно внедрил гем Prawn PDF

У меня работают отчеты PDF, но когда я добавляю код, чтобы показывать записи только для текущего пользователя.(См. Код ниже)

  def initialize(requests)
    super()
    @requests = Request.where(completed_at: [false, nil]).where(house: current_user.houses).order("created_at DESC")
    request_title
    request_id
  end

Я получаю следующую ошибку: неопределенная локальная переменная или метод `current_user 'prawn.

Работает, когда код ниже, но не фильтруетзаписи текущих пользователей.

class RequestPdf < Prawn::Document
  def initialize(requests)
    super()
    @requests = Request.where(completed_at: [false, nil]).order("created_at DESC")
    request_title
    request_id
  end

Я также пытался реализовать это в запросе_контроллере, но это не изменяет вывод PDF.

Спасибо за продвинутый

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Я бы использовал знак помощников ... Возможно, вам нужно будет включить их непосредственно в этот подкласс Prawn.

user_signed_in?

Помощники действительно предназначены для ваших контроллеров.Они не играют хорошо внутри моделей.Возможно, вам потребуется передать current_user из контроллера в код вашего класса / модели.

0 голосов
/ 02 мая 2019

Я бы отправил значение current_user в метод initialize.

Где бы вы ни вызывали это, возможно, это выглядит примерно так, измените его так, чтобы оно также передавало текущее значение пользователя.

something = RequestPdf.new(requests, current_user)

, а затем измените инициализатор

  def initialize(requests, current_user)
    super()
    @user = current_user
    @requests = Request.where(completed_at: [false, nil]).order("created_at DESC")
    request_title
    request_id
  end
...