□解決したいこと
現在、rmagicを用いて、railsで投稿したpdfをJPEGに変換して表示させたいと考えております。
画像保存にはActiveStorageを使用しております。
ActiveStorageにpdfを保存するまでは完了しております。
そこで テストを目的として以下のコードを試してみました。
ruby
1 def set_tip 2 require 'rmagick' 3 @tip = Tip.find(params[:id]) 4 binding.pry 5 image = Magick::Image.read(@tip.image.filename) 6 @tip_image = image[0].write( @tip.image.filename+ ".jpg") 7 end
うまくいけば、@tip_imageを
html
1<%= image_tag @tip_image, class: 'image-show-content' %>
に渡して、pdfをjpegに変換した画像を表示したいと思っておりました。
なお、投稿したpdfは 'テスト.pdf' です。
上記コードを
binding.pryで一つずつ試したところ、
html
1imagefile = Magick::Image.read(@tip.image.filename)
の部分で以下のエラーが発生しました。
(参考画像URL)https://gyazo.com/8d90d63a16c6941ddbd761817ce4e711
ruby
1Magick::ImageMagickError: unable to open image 'テスト.pdf': No such file or directory @ error/blob.c/OpenBlob/3537 2from (pry):60:in `read'
というエラーが発生しました。
当該エラーを解決したいと考えております。
□調べたこと
別の投稿ではread()内部のパスを正しく指定していないと、このエラーが生じるとのことでした。
https://teratail.com/questions/162265
@tip.image.filenamaはパス形式ではないため、このようなエラーが生じるということでしょうか。
この考えが正しければ、どのような方法で保存したpdfを変換できますでしょうか。
だらだらした文章になり、申し訳ありません。
アドバイス頂ければ幸いです。
参考
ruby
1gemfile 2 3~ 4gem 'mini_magick' 5~ 6gem 'rmagick'
html
1gemfile.lock 2 3activestorage (= 6.0.3.6)
activestorageの保存先db(sequelpro)のスクショ
回答2件
あなたの回答
tips
プレビュー