次のスクリプトを使用して、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}" : ''])
エラーは発生しません。ただし、もちろん、一時ファイルのファイル名は正しく生成されません。
私はこれをかなり研究しようとしましたが、解決策を見つけることができないようです。