Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 在heroku上设定数据库种子时损坏的图像_Ruby On Rails_Ruby_Heroku - Fatal编程技术网

Ruby on rails 在heroku上设定数据库种子时损坏的图像

Ruby on rails 在heroku上设定数据库种子时损坏的图像,ruby-on-rails,ruby,heroku,Ruby On Rails,Ruby,Heroku,我有一个Rails 4应用程序,它使用回形针来附加照片。My db/seeds.rb文件为我的个人模型添加了一些照片,其中的线条如下: Person.create(:first_name => 'Jon', :last_name => 'Snow', :photo => File.open("#{Rails.root}/app/assets/images/jon-snow.png)) 在我的app/models/person.rb文件中,我将:照片作为回形针附件

我有一个Rails 4应用程序,它使用回形针来附加照片。My db/seeds.rb文件为我的个人模型添加了一些照片,其中的线条如下:

Person.create(:first_name => 'Jon', :last_name => 'Snow', 
      :photo => File.open("#{Rails.root}/app/assets/images/jon-snow.png))
在我的app/models/person.rb文件中,我将:照片作为回形针附件进行裁剪和调整大小:

class Person < ActiveRecord::Base
  has_attached_file :photo, 
  :styles => { :medium => "256x256#", :small => "64x64#", :tiny => "24x24#" },
            :default_url => :set_default_avatar,
            :url  => "/assets/photos/:id/:style/:basename.:extension",
            :path => ":rails_root/public/assets/photos/:id/:style/:basename.:extension"
  validates_attachment_size :photo, :less_than => 5.megabytes
  validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png']
还有很多其他的事情,但都不管用。任何帮助都将不胜感激。

来自

slug的文件系统是只读的,这意味着您不能 动态写入文件系统以实现半永久性存储。这个 不支持以下类型的行为:在 公共目录将上传的资产保存到本地磁盘(例如 附件\u-fu或回形针

从中使用

slug的文件系统是只读的,这意味着您不能 动态写入文件系统以实现半永久性存储。这个 不支持以下类型的行为:在 公共目录将上传的资产保存到本地磁盘(例如 附件\u-fu或回形针


使用

这个问题与我在回答中描述的相同

文件系统中存在错误,因此您无法在文件系统中写入

在中,文件系统不再是只读的,因此上载不会失败。但是,您应该继续使用AWS或任何其他外部存储,因为Heroku将编译后的应用程序分发到多台机器上,并且不能保证从另一个请求中可以看到映像。他们叫它


换句话说,您应该继续使用AWS或Heroku文件系统之外的任何其他存储

问题与我在本回答中描述的相同

文件系统中存在错误,因此您无法在文件系统中写入

在中,文件系统不再是只读的,因此上载不会失败。但是,您应该继续使用AWS或任何其他外部存储,因为Heroku将编译后的应用程序分发到多台机器上,并且不能保证从另一个请求中可以看到映像。他们叫它


换句话说,您应该继续使用AWS或Heroku文件系统之外的任何其他存储

我在这个项目上与offthewahls合作,并且该评论只适用于竹堆。此项目位于Cedar stack上。请在问题上注明,因为它很重要。我可能错了,但是:Heroku上只有一个可写文件夹,这是tmp文件夹,您也应该将其配置为tmp文件夹以供上传。我正在与offthewahls合作处理此项目,该评论仅适用于竹堆。此项目位于Cedar stack上。请在问题上注明,因为它很重要。我可能错了,但是:Heroku上只有一个可写文件夹,这是tmp文件夹,您也应该将其配置为tmp文件夹,以便上载。此外,我应该提到,从网页手动将文件上载到Heroku很好。但是在数据库中植入种子是问题所在。另外,我应该提到,从网页手动将文件上传到heroku也可以。但问题出在数据库中,谢谢你的回复。我可能得和AWS一起去。但是,怎么可能通过web界面上传的文件显示得很好,而通过db种子创建的文件却被破坏了呢?如果它们都只是存储在heroku上未分发的缓存系统中,那么它们不会全部显示为已损坏吗?因为当您通过控制台访问heroku时,您正在连接(并保存文件)的计算机可能不是您使用HTTP接口时连接的计算机。谢谢您的回复。我可能得和AWS一起去。但是,怎么可能通过web界面上传的文件显示得很好,而通过db种子创建的文件却被破坏了呢?如果它们都存储在heroku上未分发的缓存系统中,那么它们不是都会显示为已损坏吗?因为当您通过控制台访问heroku时,您正在连接(并保存文件)的计算机很可能不是您使用HTTP接口时连接的计算机。
<img alt="Jon Snow" src="/assets/photos/21/small/jon-snow.png?1386825683">
heroku run rake assets:precompile