2

次のスクリプトを使用して、PDFファイルのjpgを生成しようとしていますが成功しません。

https://gist.github.com/3059321

私は誰かがそれを機能させるために私に少しの援助を提供してくれることを望んでいます。私はそれに苦労してかなりの時間を費やしました。

私は古い開発環境を持っています:

shajizaidi@Spock:~/Softdev/e-mangue/script$ rails -v
Rails 2.3.8
shajizaidi@Spock:~/Softdev/e-mangue/script$ ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [i686-linux]

そして関連する宝石:

aasm (3.0.1)
actionmailer (2.3.8, 2.2.2)
actionpack (2.3.8, 2.2.2)
activemodel (3.1.3)
activerecord (2.3.8, 2.2.2)
activeresource (2.3.8, 2.2.2)
activesupport (3.1.3, 2.3.8, 2.2.2)
arel (2.2.1)
git (1.2.5)
hpricot (0.8.5)
httpclient (2.2.4)
mysql (2.8.1)
passenger (3.0.11)
rack (1.4.0, 1.1.3)
rails (2.3.8, 2.2.2)
rake (0.9.2)
ruby-blockcache (0.2)
rubygems-update (1.5.3)
rubyist-aasm (2.1.1)
soap4r (1.5.8)

私のモデルからの抜粋は以下のとおりです。

class Issue < ActiveRecord::Base
include AASM

   belongs_to :publication
   has_many :readings
   has_many :readers, :through => :readings, :class_name => "User"

   has_many :issue_metadatas, :dependent => :destroy
   has_many :table_of_contents_entries, :dependent => :destroy

   has_many :issue_ratings

   has_one :issue_status, :dependent => :destroy

   has_attached_file :pdf,
                    :url  => "/assets/:id/",
                    :path => ":rails_root/assets/docs/:id/:style/:basename.:extension",
                     :styles => {
                                 :icon => ["60X80#", :jpg], 
                                 :thumb => ["360x480#", :jpg]
                                 :large => ["X800", :jpg]
                                 },
                     :processors => [:ghostscript, :thumbnail],
                     :convert_options => {:all => ' colorspace RGB  flatten  density 300  quality 100'},
                     :path => ":page_path/:class/:id/:resource_token/:style/:filename"

   validates_presence_of     :issue_number
   validates_presence_of     :title
   validates_presence_of     :date

PDFをアップロードしようとすると、次のエラーが発生します。

 RuntimeError (cannot generate tempfile `'):
  /home/shajizaidi/.rvm/rubies/ruby-1.8.7-p357/lib/ruby/1.8/tempfile.rb:52:in `initialize'
  lib/paperclip_processors/ghostscript.rb:17:in `new'
  lib/paperclip_processors/ghostscript.rb:17:in `make'
  app/controllers/issues_controller.rb:79:in `new'
  app/controllers/issues_controller.rb:79:in `create'

ghostscript.rb

たとえば、配列を使用せずに一時ファイルの生成方法を変更するかどうかをテストするには、次のようにします。

dst = Tempfile.new(“#@basename})

それ以外の:

dst = Tempfile.new([@basename, @format ? ".#{@format}" : ''])

エラーは発生しません。ただし、もちろん、一時ファイルのファイル名は正しく生成されません。

私はこれをかなり研究しようとしましたが、解決策を見つけることができないようです。

4

0 に答える 0