0

この例をファイル アップローダーに使用しています。 ファイルを保存した後、R で解析し、r-plot をデータベースに保存したいと考えています。

それが私のupload.rbです:

Paperclip::interpolates :array_type_folder do |attachment, style|
  attachment.instance.upload_content_type
end
  has_attached_file :upload,
                    
                    :url =>"/system/Files/:array_type_folder/:basename.:extension",
                    :path =>":rails_root/public/system/Files/:array_type_folder/:basename.:extension"

  after_save :do_picture_analyse
def do_picture_analyse
   require 'rinruby'
    myr = RinRuby.new(echo=false)      
    myr.fileurl=upload.url(:original)
    puts "#{myr.fileurl}"
    myr.eval <<EOF
       s=read.table(fileurl)
       jpeg(filename=':rails_root/public/system/Files/Pictures/probe.jpeg',width=250, height=250)
       hist(s$V1) 
       dev.off()
   
    EOF
end

この行により、データベース内のファイルの URL を確認できます (テストするだけです)。

 myr.fileurl=upload.url(:original)
    puts "#{myr.fileurl}"

ファイル probe2.cel をアップロードして R で分析すると、この種のエラーが発生します。

/system/Files/11/probe2.cel?1353680334 (that is the result of puts "#{myr.fileurl}") 
Error in file(file, "rt") : could not open the connection
Error:
In file(file, "rt") :
   '/system/Files/11/probe2.cel?1353680334' no such file or directory
Error in hist(s$V1) : Object 's' not found

データベースに接続できず、ファイルが見つからないようです。どうすれば対処できますか?前もって感謝します

4

1 に答える 1

0

あなたが得るエラーは、ファイルへの接続が確立できなかったことだと思います(Rなのでわかりません)。

2 つの原因が考えられます。

  • urlファイルを開くことができません:ここは間違っていると思います。ファイル パスを使用する必要があります
  • ファイルを保存できません: で使用しているファイルの構文がわかりませんjpeg(filename='...')

だからあなたが書くなら

myr.fileurl = upload.path
myr.new_filepath = "#{Rails.root}/public/system/Files/Pictures/probe.jpeg"

myr.eval <<EOF
   s=read.table(fileurl)
   jpeg(filename=new_filepath, width=250, height=250)
   hist(s$V1) 
   dev.off()
EOF

それは動作しますか?

お役に立てれば。

于 2012-11-23T18:24:59.660 に答える