0

これを行う方法がわかりません。ファイル名なしでS3パスを取得する必要があります https://testphotobucket.s3.amazonaws.com/uploads/51237a37ff770df332000007/

そして、このようではありません https://testphotobucket.s3.amazonaws.com/uploads/51237a37ff770df332000007/tiger.jpg

しかし、私はこのエラーを受け取り続けます。#未定義メソッドgallery_photo_path' for #<Gallery:0x007f94f4658778> undefined methodgallery_photo_http_url'

ストレージとして霧を使用している場合、どうすればパスを取得できますか?

ありがとう。以下は私のコードスニペットです。

# models/gallery.rb
class Gallery

  include Mongoid::Document        

  mount_uploader :gallery_photo, PhotoUploader

# uploaders/photo_uploader.rb
class PhotoUploader < CarrierWave::Uploader::Base

  storage :fog

# views/galleries/show.html.erb
<%= image_tag @gallery.gallery_photo_url.to_s %>
path **<%= @gallery.gallery_photo_path.to_s %>**   <--- not working
httppath **<%= @gallery.gallery_photo_http_url.to_s %>** <--- not working

# the error:
undefined method `gallery_photo_path' for #<Gallery:0x007f94f4658778>
undefined method `gallery_photo_http_url' for #<Gallery:0x007f94f46431e8>
4

1 に答える 1

0

あなたが求めているのは、キャリアウェーブに組み込まれていません。おそらくこれをヘルパーに入れる必要があります:

def uri_dirname(uri_string)
  uri = URI.parse(uri_string)
  uri.path = File.dirname(uri.path)
  uri.to_s
end

そして、ビューで次を使用できます。

uri_dirname(@gallery.gallery_photo.uri)
于 2013-08-28T12:11:43.077 に答える