大虾PDF仅为当前用户生成记录

时间:2019-05-02 16:26:37

标签: ruby-on-rails pdf prawn

我最近实现了Prawn PDF gem

我可以使用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”大虾。

该代码在下面的代码中有效,但是不会过滤到当前用户记录。

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

我也尝试过在requests_controller中实现此功能,但是它不会更改PDF的输出。

谢谢您

2 个答案:

答案 0 :(得分:1)

我将使用登录助手...您可能需要将它们直接包含在该Prawn子类中。

user_signed_in?

助手确实是为您的控制器而设计的。他们在模型内部玩得不好。您可能需要将current_user从控制器传递到您的类/模型代码。

答案 1 :(得分:0)

我会将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