【问题标题】:Sinatra + prawn example?Sinatra + 大虾的例子?
【发布时间】:2013-09-08 10:12:24
【问题描述】:

我在黑暗中。我应该怎么做才能开始这件事?

这是我找到的最接近解决方案的方法,但它对我不起作用。 Sinatra: Template engine not found: prawn

编辑: 我处于非常非常早期的阶段。我真的想尝试在 Prawn 中创建一个 hello world,然后从那里添加我的内容。像这样的东西(app.rb):

require 'prawn'

get 'report/' do
content_type 'application/pdf'

pdf = Prawn::Document.new
pdf.text "Hello World"
pdf.render

end

【问题讨论】:

  • 你能澄清一下这个问题吗?至少提供一些范围,例如您是否希望从 Sinatra 路由返回动态 PDF(最好的猜测)。也许添加一个骨架代码 ???你不知道该怎么做。您是否尝试过通过从磁盘读取来简单地返回二进制 PDF?这将您的问题分解为知道如何返回 PDF 和知道如何生成它们。 . .
  • @NeilSlater 感谢您的回复。我想做的基本上是让用户转到 localhost:4567/report/ 并生成一个 pdf,上面写着 hello world。之后我可能会自己做事,但现在我在寻找起点时束手无策
  • 您的示例对我有用(好吧,前提是我将 get 'report/' 更改为 get '/report')。我得到了在 Chrome 中内联呈现的 hello world PDF。

标签: ruby sinatra prawn


【解决方案1】:

您的代码非常适合我,除了我必须将路径从“report/”更改为“/report”(因为这是 Sinatra 在您转到

时看到的
'http://localhost:4567/report/

)。

我运行的确切代码是:

require 'sinatra'
require 'prawn'

get '/report/' do
  content_type 'application/pdf'

  pdf = Prawn::Document.new
  pdf.text "Hello World"
  pdf.render

end

这是我的 ruby​​ 版本:

ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.2.1]

我想你一定非常接近。

【讨论】:

  • 原来我很接近,我只是在我的文件顶部有这条路线与这条路线冲突。谢谢。
【解决方案2】:

这很疯狂,但我终于解决了,多亏了你们俩。首先,是的,前面的斜线有错字。但更重要的是,发生的事情是我有一个

get '/:model/?' do

代码顶部附近的行,这与该路线冲突。所以我把报告路线移到了顶部。一切正常,我现在可以睡觉了。谢谢。

【讨论】:

    猜你喜欢
    • 2012-07-09
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2011-02-11
    • 1970-01-01
    • 2013-10-05
    相关资源
    最近更新 更多