Wicked_PDF не отображает правильный шаблон - PullRequest
0 голосов
/ 16 октября 2018

Привет, у меня есть приложение для написания предложений.Я пытаюсь настроить wicked_pdf для генерации PDF, и по какой-то причине он не использует правильный шаблон.он использует мой шаблон приложения, а не шаблон pdf.

app / controllers / offer_controller.rb

def show
    @proposal = Proposal.find(params[:id])
    @custom_content = @proposal.custom_contents
    respond_to do |format|
      format.html
      format.pdf do
        render pdf: "some_name",
               template: "proposals/show.pdf.erb",
               layout: "pdf.html",
               margin: { top: 35, bottom: 35 }
      end
    end
  end

app / views / layouts / pdf.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>PDF</title>
  <%= wicked_pdf_stylesheet_link_tag "application" -%>
</head>
<body>
<div class='container d-flex justify-content-center'>
  test 2
  <%= yield %>
</div>
</body>
</html>

app / views / offer / show.pdf.erb

<div class="row full-page justify-content-center" id="cover">
  <div class="container">
    <div class="row p-0">
      <div class="col-12 d-flex align-items-end ">
        <%= wicked_pdf_image_tag '1209232_1920-1.jpg' %>
      </div>
    </div>
    <div class="row pt-1 d-flex align-items-end text-justify">
      <div class="col-12 text-justify cover-background">
        <div class="row pt-1">
          <h2 class="text-white text-justify">Proposal For <br> Maintenance</h2>
        </div>
        <div class="row p-0">
          <div class="col-6">
            <h5 class="text-white text-justify">Prepared For: <%= @proposal.contact.name %></h5>
            <h6></h6>
          </div>
          <div class="col-6">
            <h5 class="text-white text-justify">Prepared By: <%= @proposal.user.name %></h5>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

config / initializers / wicked_pdf.rb

# WickedPDF Global Configuration
#
# Use this to set up shared configuration options for your entire application.
# Any of the configuration options shown here can also be applied to single
# models by passing arguments to the `render :pdf` call.
#
# To learn more, check out the README:
#
# https://github.com/mileszs/wicked_pdf/blob/master/README.md

WickedPdf.config = {
    }

config / initializers / mime_types.rb

# Be sure to restart your server when you modify this file.

# Add new mime types for use in respond_to blocks:
# Mime::Type.register "text/richtext", :rtf
Mime::Type.register "application/pdf", :pdf

Мне кажется, что я смотрел на это так долго, что, наверное, я упускаю очевидное.Я даже запустил пример приложения для тестирования ... и у меня не было проблем с ним.

Я последовал этому великолепному учебнику - https://medium.com/@yazed.jamal/using-wicked-pdf-with-rails-5-3d1a4b0a09ba

Любая помощь очень ценится

Следует также отметить, что созданный файл не "some_name", а идентификатор .pdf

, моя кнопка находится в моем приложении / views / offer / _proposal-cover.html.erbкоторый является частичным в моем приложении / views / предложения / show.html.erb

<%= link_to 'Download', proposal_path(@proposal, :format => :pdf), class: 'btn btn-default'  %>

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Я хочу сказать спасибо @dollarchills и @nourza.Оба были отличными помощниками в этом.

Оказывается, что другой разработчик установил следующее

Если вы хотите, чтобы WickedPdf автоматически генерировал представления PDF для всех (или почти всех) страниц, добавив .pdf кURL, добавьте следующее в ваше приложение Rails:

в application.rb (Rails3) или environment.rb (Rails2)

require 'wicked_pdf'
config.middleware.use WickedPdf::Middleware

, который перезаписывает все остальное

0 голосов
/ 16 октября 2018

Дайте следующую попытку.Я использую wicked в своем приложении, и эта структура работает для меня, надеюсь, это работает для вас.

Показать

<%= link_to 'Download', proposal_path(format: 'pdf'), class: 'btn btn-default'  %>

Контроллер

format.pdf do
 render pdf: "some_name",
  template: "proposals/show",
  margin: { top: 35, bottom: 35 }
end
...