我最近实现了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的输出。
谢谢您
答案 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