Ruby on rails 错误:";没有这样的文件或目录;使用carriewave上载图像时
我使用的是Rails 4和Ruby 2。我正在尝试使用carrierwave上传一个图像,但得到一个错误“没有这样的文件或目录-XYZ.jpg”。但当我把图像保存在我的应用文件夹中时,它会完美地上传。如果有人对此有任何想法,请帮助我。下面是我的代码: gem文件: 宝石“carrierwave” 报告\u controller.rbRuby on rails 错误:";没有这样的文件或目录;使用carriewave上载图像时,ruby-on-rails,Ruby On Rails,我使用的是Rails 4和Ruby 2。我正在尝试使用carrierwave上传一个图像,但得到一个错误“没有这样的文件或目录-XYZ.jpg”。但当我把图像保存在我的应用文件夹中时,它会完美地上传。如果有人对此有任何想法,请帮助我。下面是我的代码: gem文件: 宝石“carrierwave” 报告\u controller.rb def create @site = Site.find(params[:site_id]) @report = @site.reports
def create
@site = Site.find(params[:site_id])
@report = @site.reports.build
@report.image = File.new(params[:image])
@report.save
end
new.html.erb
<div>
<%= file_field_tag :image %>
</div>
<div class="col-sm-8">
<span> My Photo:
<%= image_tag @report.image_url %></span>
</div>
show.html.erb
<div>
<%= file_field_tag :image %>
</div>
<div class="col-sm-8">
<span> My Photo:
<%= image_tag @report.image_url %></span>
</div>
我的照片:
正如您所解释的,原因是无法从系统中的任何其他位置获取,这是404错误。确切地说,我在制作(Heroku)时经历过这种情况,我所做的是更改我的carrierwave图像上传器store_dir action
以合并在Heroku上存储上传图像的路径
注意如果是在制作中,您还可以在将store_dir action
附加到该目录并推送之前找到图片上载到的位置
示例--app/uploaders/image\u uploader.rb
def store_dir
"public/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
有关更多信息,请参见查看此处,如果图像位于应用程序的根文件夹中,则图像将存储在应用程序的publc文件夹中。它不会从系统中的任何其他位置获取。我想您应该定义用于承载外部图像的文件夹。查看自述文件,我如何定义它?这也是在我的控制器中分配它的正确方法@report.image=File.new(参数[:image])