1

Ruby と RoR は初めてです。エビを使用してRubyでpdfジェネレーターを作成しました。今度は私の Rails ビューからそれを実行したいと思います。

<%= form_for @assemble do |f| %>
      <div class="row">
        <div class="span2">
          <h2 style="text-align: right;">Your</h2>
          <ul id="download_ul">
            <li style="margin-top: 5px;"><%= f.label :title_top %> </li>
            <li style="margin-top: 13px;"><%= f.label :text_top %></li>
            <li style="margin-top: 13px;"><%= f.label :link %></li>
            <li style="margin-top: 13px;"><%= f.label :title_bottom %></li>
            <li style="margin-top: 13px;"><%= f.label :text_bottom %></li>
            <li style="margin-top: 13px;"><%= f.label :qr_code_url %></li>
            <li style="margin-top: 13px;"><%= f.label :photo %></li>
            <li style="margin-top: 13px;"><%= f.label :logo %></li>
            <li style="margin-top: 10px;"><%= f.label :format %></li>
            <li style="margin-top: 0px;"><%= f.label :cut_lines %></li>
          </ul>
        </div>
        <div class="span3">
          <h2>Information</h2>
          <form method="post" action="../generate_pdf.rb">
            <ul class="download_ul">
              <li><%= f.text_field :title_top %></li>
              <li><%= f.text_area :text_top%></li>
              <li><%= f.text_field :link%></li>
              <li><%= f.text_field :title_bottom %></li>
              <li><%= f.text_area :text_bottom %></li>
              <li><%= f.text_field :qr_code_url %></li>
              <li><%= f.text_field :photo %></li>
              <li><%= f.text_field :logo %></li>
              <li style="margin-top: 6px;">
                A4<%= f.check_box :format_a4 %>
                A5<%= f.check_box :format_a5 %>
                Letter<%= f.check_box :format_letter %>
                Business card<%= f.check_box :format_business_card %>
              </li>
              <li style="margin-top: 6px;">
                True<%= f.check_box :cut_lines_true, f.row %>
                False<%= f.check_box :cut_lines_false %>
              </li>
            </ul>
            <p><%= f.submit %>></p>
          </form>
        </div>
        <div class="span6">
          <h2>Example</h2>
          <p><%= image_tag("a5.png", :size => "420x600") %></p>
        </div>
      </div>
  <% end %>

ruby で prawn-app を実行するには、run.rb を使用します。

require '../lib/generator.rb'

PDFGenerator::A5.new(filename: "a5.pdf",
  colors: {
    instructions:         "525149",
    instructions_header:  "000000",
    panel:                "001430",
    experience:           "FFFFFF",
    qr_reader:            "525149"
  },
  texts: {
    qr_code_instructions: "*Some text ",
    instructions_header:  "Some text",
    instructions:         "Some text",
    link:                 "Some text",
    experience_header:    "Some text",
    experience:           "Some text"
  },
  photo:   "images/img.jpg",
  qr_code: "images/qr.png",
  logo:    "images/logo.png").generate

私のコントローラーとモデルファイル:

class AssembleController < ApplicationController
  def index
    redirect_to new_assemble_path
  end

  def new
    @assemble = Assemble.new
  end
end

class Assemble < ActiveRecord::Base
  # attr_accessible :title, :body
end

私が何をしようとしているのかが明確になることを願っています。他の人と同様の質問をすることをお詫びしますが、私のコードでは解決策がわかりません。

4

2 に答える 2

3

コントローラーで、スクリプトを呼び出して生成された pdf を返すアクションを作成する必要があります。次にsend_file、ファイルをパブリック フォルダーで使用または保存し、その URL をユーザーに返すことができます。

于 2012-07-18T13:25:26.323 に答える
1

ユリが指摘したように、それを行うにはコントローラーアクションを実行する必要があります。 Webアプリケーション101:サーバー上で何かを実行するためにブラウザーからアクションを取得するには、要求サイクルを実行する必要があります。

PDFを生成する1つの方法は、railscastのエピソードに示されています。そうでない場合は、少なくとも応答ヘッダーを設定して、ブラウザーがそれがhtmlではなくpdfであることを認識できるようにする必要があります。

于 2012-07-18T14:24:47.490 に答える