1

私の開発環境では、ペーパークリップを使用してダウンロードを正常に作成できます。本番環境ではダウンロードが作成されますが、ダウンロードへのリンクが機能しません。

開発中に作成されるリンク:

http://localhost:3000/downloads/files/3?1345315475

本番環境で作成されるリンク:

http://www.domain.com/attachments/original/missing.png

ダウンロードが作成されたときの本番環境からのログは次のとおりです。

Started POST "/downloads" for xxx.xxx.xxx.xxx at 2012-08-18 11:47:31 -0700
Processing by DownloadsController#create as JS
Parameters: {"utf8"=>"✓", "authenticity_token"=>"JhFMcjaui8cb4HCxTiIOjb/R2uxVJcOv3WEz8V0yoPp=", "download"=>{"school_id"=>"1", "software"=>"Follett", "original"=>"1", "makeup"=>"0", "visible"=>"1", "expired"=>"0"}, "commit"=>"Create Download"}
[paperclip] Saving attachments.
Rendered download_notice_mailer/download_notice.html.erb (1.9ms)

コンソールでダウンロードを検索すると (プロダクション)

irb(main):001:0> d = Download.last
Download Load (0.4ms)  SELECT `downloads`.* FROM `downloads` ORDER BY `downloads`.`id` DESC LIMIT 1
=> #<Download id: 8, visible: true, expired: false, software: "Skyward", created_at:    "2012-08-18 19:01:35", updated_at: "2012-08-18 19:01:35", school_name: "SCHOOL NAME", original: true, makeup: false, attachment_file_name: nil, attachment_content_type: nil, attachment_file_size: nil, attachment_updated_at: nil, school_id: 8, district_id: 2>

すべての添付属性が nil であることがわかります。

私はレール3.2.8とペーパークリップ3.1.4を使用しています

私のdownload.rbモデルファイルの一部

has_attached_file :attachment, :path => (Rails.root + "downloads/files/:id").to_s,
                             :url => "/downloads/files/:id"

validates_attachment_presence :attachment

attr_accessible :visible, :expired, :software, :school_name, :original, :makeup, :attachment, :school_id, :district_id

追加情報が必要な場合はお知らせください。

ありがとう、

4

1 に答える 1

1

解決...

テストダウンロードがサーバーに転送されないように、.gitignore ファイルに /downloads/files をリストしたようです。/downloads/files ディレクトリがサーバー上になく、ペーパークリップがファイルを /downloads に入れていることを発見しました (エラーなしで追加できます)。そのため、ダウンロードでファイル dir を作成した後、すべてが期待どおりに機能しています。

于 2012-08-19T18:29:47.113 に答える