2013-09-04 3 views
3

Я здесь в темноте. Что я должен сделать, чтобы начать это?Синатра + пример креветок?

Это самая близкая вещь, которую я нашел для решения, но это не работает для меня. Sinatra: Template engine not found: prawn

Редактировать: Я нахожусь на очень ранней стадии. Я буквально хочу просто попробовать сделать мир привет в Prawn, и оттуда я добавлю свое содержание в Что-то вроде этого (app.rb):.

require 'prawn' 

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

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

end 
+1

Не могли бы вы пояснить вопрос? По крайней мере, предоставите некоторые возможности, например, ожидаете ли вы вернуть динамический PDF-файл с маршрута Sinatra (лучшее предположение). Возможно добавить скелет кусок кода с ??? где вы не знаете, что делать. Вы пробовали просто возвращать двоичный PDF-файл, читая его с диска? Это раскладывает вашу проблему, зная, как вернуть PDF-файлы и знать, как их создавать. , , –

+0

@NeilSlater Благодарим за отзыв. То, что я хотел бы сделать, это в основном заставить пользователя перейти на localhost: 4567/report/и создать pdf-файл, который говорит привет миру. Я, вероятно, буду делать что-то сам после, но прямо сейчас я нахожусь здесь, ища начальную точку. –

+0

. Ваш пример работает для меня (ну, если я изменяю 'get 'report /'' to 'get '/ report «'). Я получаю привет мир PDF, сделанный встроенным в Chrome. –

ответ

8

Ваш код работает отлично для меня, за исключением того, что Я должен был изменить путь от «доклада /» до «/ доклад» (потому что это то, что Синатра видит, когда вы идете в

'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 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.2.1] 

Я думаю, вы должны быть невероятно близко.

+0

Оказывается, я был близок, у меня был только этот маршрут наверху моего файла, который противоречил этому маршруту. Спасибо. –

0

Это безумие, но я решил, наконец, благодаря вам обоим. Во-первых, да, была опечатка ошибки в предыдущем косе. Но что еще более важно, что происходит в том, что у меня было

get '/:model/?' do 

линия в верхней части коды, и это было конфликтует с этим маршрутом. Поэтому я переместил маршрут отчета на верх. Все работает, и я могу спать сейчас. Спасибо.