Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails应用程序无法使用回形针和Mongoid保存上传到Amazon S3的图像_Ruby On Rails_Amazon S3_Paperclip_Mongoid - Fatal编程技术网

Ruby on rails Rails应用程序无法使用回形针和Mongoid保存上传到Amazon S3的图像

Ruby on rails Rails应用程序无法使用回形针和Mongoid保存上传到Amazon S3的图像,ruby-on-rails,amazon-s3,paperclip,mongoid,Ruby On Rails,Amazon S3,Paperclip,Mongoid,我试图将与优惠券对象关联的图像存储在AmazonS3实例中。我的Rails 3.1应用程序使用Mongoid进行文档存储,我不打算引入回形针(通过Mongoid回形针)在Amazon S3上存储优惠券的图像 我在AmazonS3上创建了一个权限组,并添加了一个用户;有效权限已添加到我的应用程序中(我可以验证,因为如果我删除或更改权限,我会收到一个错误),但当我尝试保存文件时,文件的信息存储在数据库中,但文件不会上载。如果我从等式中删除mongoid回形针,文件也不会存储在本地(尽管我确实看到它们

我试图将与
优惠券
对象关联的图像存储在AmazonS3实例中。我的Rails 3.1应用程序使用Mongoid进行文档存储,我不打算引入回形针(通过Mongoid回形针)在Amazon S3上存储优惠券的图像

我在AmazonS3上创建了一个权限组,并添加了一个用户;有效权限已添加到我的应用程序中(我可以验证,因为如果我删除或更改权限,我会收到一个错误),但当我尝试保存文件时,文件的信息存储在数据库中,但文件不会上载。如果我从等式中删除mongoid回形针,文件也不会存储在本地(尽管我确实看到它们存在于本地机器上的临时文件夹中,并通过ImageMagick进行处理)


模型 我的
优惠券
对象嵌入了许多
图像
对象,例如:

class Coupon
  include Mongoid::Document
  include Mongoid::Timestamps

  # Relationships
  embeds_one :image, as: :imageable

  # Database Schema
  field :name
  field :description
  field :expires, type: Date

  # Validation
  validates :name, :description, :presence => true

end


class Image
  include Mongoid::Document
  include Mongoid::Paperclip
  include Mongoid::Timestamps

  # Relationships
  embedded_in :imageable, polymorphic: true
  has_mongoid_attached_file :file,
    :path           => ':id/:style.:extension',
    :storage        => :s3,
    :s3_credentials => File.join(Rails.root, 'config', 's3.yml'),
    :styles => {
      :original => ['920x920>', :jpg]
    }

end

我在控制台或日志中未看到回形针的任何输出,无法确定如何启用此类输出。在成功更新属性后重定向页面之前,与正在上载的文件相关的唯一记录信息如下:

|命令::标识-格式%wx%h'/var/folders/ff/vxzlz741287dsr006bv2s59c000gn/T/stream20111022-80997-o1pqk.png[0]'


| Command::convert'/var/folders/ff/vxzlz741287dsr006bv259c000gn/T/stream20111022-80997-o1pqk.png[0]-resize“920x920>”/var/folders/ff/vxzlz741287dsr006bv259c000gn/T/stream20111022-80997-o1pqk20111022-80997-5z9phe.jpg'
这似乎是本地ImageMagick安装提供的标识命令的问题。您的系统上是否安装了ImageMagick的库?我曾经遇到过类似的问题,似乎是从brew安装ImageMagick解决了这个问题。仅供参考:我的问题是由错误的符号链接造成的,当我从源代码编译ImageMagick时,identify命令(和其他命令)没有正确链接。

也许,此代码没有使用回调。 回形针使用“保存后”的回调来保存图像

embeds_one :image, as: :imageable, cascade_callbacks: true 
您应该使用Mongoid的级联回调。