首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails/ Prawn :如何在Prawn类中使用rails助手?

Rails/ Prawn :如何在Prawn类中使用rails助手?
EN

Stack Overflow用户
提问于 2012-03-14 19:32:37
回答 3查看 3.5K关注 0票数 9

我试图在rails 3.2类中使用prawn帮助程序,但是rails抛出:

代码语言:javascript
复制
undefined method `number_with_precision' for #<QuotePdf:0x83d4188>

对虾类

代码语言:javascript
复制
class QuotePdf < Prawn::Document
  def initialize(quote)
    super()

    text "sum: #{number_with_precision(quote.sum)}"
  end
end

控制器

代码语言:javascript
复制
def show
  @quote = current_user.company.quotes.where(:id => params[:id]).first
  head :unauthorized and return unless @quote

  respond_with @quote, :layout => !params[:_pjax] do |format|
    format.pdf do
      send_data QuotePdf.new(@quote).render, filename: "Devis-#{@quote.date_emission.strftime("%d/%m/%Y")}.pdf",
      type: "application/pdf"
    end
  end
end

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-14 20:07:02

您必须在prawn文档类中显式地包含ActionView::Helpers::NumberHelper (或任何其他帮助类/模块)。

代码语言:javascript
复制
class QuotePdf < Prawn::Document
  include ActionView::Helpers::NumberHelper # <-

  def initialize(quote)
    super()

    text "sum: #{number_with_precision(quote.sum)}"
  end
end
票数 13
EN

Stack Overflow用户

发布于 2012-09-12 06:06:32

只需将view_context传递给Prawn子类初始化器即可。

代码语言:javascript
复制
def initialize(quote, view_context)
  super()
  @view = view_context
end

在主计长中,改为:

代码语言:javascript
复制
QuotePdf.new(@quote, view_context)

然后,在对虾子类中,这将起作用:

代码语言:javascript
复制
@view.number_with_precision(quote.sum)
票数 9
EN

Stack Overflow用户

发布于 2012-07-11 13:25:59

如果iafonov解决方案不起作用,您可能只需包含没有前缀的NumberHelper

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9708884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档