gpt4 book ai didi

ruby-on-rails - 如何将当前模型保留在我的方法范围内

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:38 24 4
gpt4 key购买 nike

我有一个 Rails 模型,在其中一种方法中,我像这样使用 prawn 生成 pdf;

class Report < ActiveRecord::Base

def pdf_output
Prawn::Document.new do
text "Start date: #{start_date.strftime('%e %b %Y').squish}"
end
end

end

在那个文本方法中,我试图输出我的报表模型的 start_date 属性。相反,我收到以下错误

NoMethodError in ReportsController#show

undefined method `start_date' for #<Prawn::Document:0x007fdafbce6930>

所以我的 start_date 方法指的是我的 Document 对象而不是我的 Report 对象。如何从该 block 内部访问报表对象的变量和方法?

最佳答案

通常的 JavaScript 技巧应该起作用:

def pdf_output
report = self
Prawn::Document.new do
text "Start date: #{report.start_date.strftime('%e %b %Y').squish}"
end
end

只需获取对您需要的 self 的引用,这样您就不必担心 Prawn 在您的 block 中对 self 做了什么。

关于ruby-on-rails - 如何将当前模型保留在我的方法范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12889857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com