2016-08-28 19 views
0

はじめに:私はREAL rails newbieです。私は最初のWebアプリケーションを開発しているので、基本的な概念でさえ私には分かりません。 (私は0.5メガバイトの周りするPDFを期待していので)私は私のアプリケーションでPDFファイルを保存するために(のみとペーパークリップ)ペーパークリップを使用することを計画していますフォームへの添付を求める(ペーパークリップ)

は持ち運びにくい、私の問題を言って。 Paperclipのgithubに関するチュートリアルでは、私にとって明らかなことは一つもありませんでした。

  • 私のフォームに添付ファイルを尋ねる(実際に保存する)にはどうすればいいですか?

ありがとう、本当に私はこれらの2つの問題を自分で解決できませんでした。

EDIT:これは私がファイルを添付するためのボタンがありますが、それだけでは動作しませんようだと、ファイルが保存されていない

<div class="field"> 
    <%= f.label :pdf %> 
    <%= f.file_field :pdf %> 
</div> 

を試みたものです。

EDIT2: 提案された解決策に従えば、私のサーバーは実際に自分のフォームに添付するpdfsを保存します。

今、関連するURL(pdfから)が、システムがpdfを保存する場所(私たちはそれを自動的にダウンロードしています)を尋ねるページに私を直接送る理由を理解したいと思います。ここでは、コードの関連する部分が行く:

<td><%= (link_to 'Related file', task.pdf.url, :target => "_blank") if task.pdf.exists? %></td> 

これはアプリ/ビュー/タスク/ index.html.erbの内側に配置されて

答えて

1

この例では(表にPDF添付ファイルを追加するにはあなたの移行をI )Documentsテーブルに添付PDFを追加していすると、次のようになります。

class AddAttachmentPdfToDocuments < ActiveRecord::Migration 
    def self.up 
    change_table :documents do |t| 
     t.attachment :pdf 
    end 
    end 

    def self.down 
    remove_attachment :documents, :pdf 
    end 
end 

あなたは、PDFの列が実際にテーブルに追加されるように、あなたがこの移行を作成した後rake db:migrateを実行する必要があります。ペーパークリップ(繰り返しますが、私は、例えばdocumentsモデルを使用しています)のための

お使いのモデルのコードは次のようになります。

has_attached_file :pdf, :use_timestamp => false 
validates_attachment_content_type :pdf, :content_type => ['application/pdf', 'text/plain'] 

は、PDFファイルを追加するには、フォームに入力を追加する必要があり、例えば、これは、PDFの添付を求めるために使用するループである:あなたのcontrolerで

<%= form_for @document do |f| %> 

    <%= f.input :title, label: "Title" %> 

    <%= f.input :pdf, label: "Upload document:" %> 

    <%= f.button :submit %> 

<% end %> 

を(再びのcontrolerとしてdocumentsを使用して)あなたはのparams :pdfを渡す必要があります。あなたのプライベートメソッドのようなものになります。あなたはそれを変更する必要が別の名前を使用しているので、もし

def documents_params 
    params.require(:document).permit(:title, :pdf) 
end 

注意を、私は、など私のコントローラ、モデル、フォームとしてdocumentを使用しています。 問題がある場合はコメントを残して、私はお手伝いをしようとします

+0

それは確かにそれをしました!私はまだすべてを把握していませんが、ありがとう、私はそこに着くでしょう。 EDIT:もう1つの質問:私の「view」には現在添付されているpdfへのURLリンクがあります。唯一の問題は、私がそれをクリックすると、すでにpdfを保存するように要求する新しいタブが開きます。ダウンロードや保存を求めずに、私にそれを表示するにはどうすればいいですか? –

+0

私はあなたの尋ねるものが何であるか分かりません。新しいタブで開くのではなく、PDFを直接ダウンロードしたいのですか? –

+0

正反対ですが、私はそれを新しいタブで開くだけです。実際のフォームでは、保存する場所を選択する 'ファイルを保存'ダイアログで既に開いています。 –

関連する問題