2013-07-24 2 views
0

Предположим, у меня будет две версии show.html.erb для той же модели.в случае, если у меня есть две версии show.html.erb

Первый, по умолчанию, я буду называть show.html.erb.

Второй, например, - show1.html.erb.

Итак, я хочу использовать 1-й, чтобы показать в браузере, и второй для печати.

Должен ли я создать метод для этого в контроллере?

В целом возможно ли создать другие виды, кроме тех, которые создаются подмостками?

ответ

1

Почему бы не использовать эту wicked_pdf перл: https://github.com/mileszs/wicked_pdf для создания PDF для печати:

Добавить Mime::Type.register "application/pdf", :pdf

к config/initializers/mime_types.rb

in show method:

def show 
    respond_to do |format| 
     format.html 
     format.pdf do 
     render :pdf => "file_name" 
     end 
    end 
    end 

Теперь вам просто нужно создать файл show.pdf.erb и использовать его для печати.

+0

Спасибо, я нашел также некоторые railscasts относительно PDF. – Askar

+0

Я знал, что есть один, я использовал его год назад, и я просто не мог найти ссылку, чтобы поместить его здесь. – rmagnum2002

+0

Вот ссылка http://railscasts.com/episodes?utf8=%E2%9C%93&search=pdf. Что вы имеете в виду? – Askar

2

Вы можете использовать различные форматы вывода с использованием метода respond_to

Допустим, вам нужно HTML и текстовые версии

def action 
    # do some logic 
    respond_to do |format| 
    format.html 
    format.text 
    end 
end 

В этом случае для маршрута «.../акции» show.html. erb будет отображаться. И для «.../action.txt» будет отображаться show.text.erb. Вы можете настроить имя шаблона, передавая их в блоке, как format.text { render 'show1' }

Посмотрите еще: http://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to

Смежные вопросы