【发布时间】:2019-11-30 05:58:21
【问题描述】:
我在使用 CarrierWave 时遇到了很多困难,所以我做了一个小程序来看看我是否可以让它工作:
require 'sinatra'
require 'dm-core'
require 'dm-migrations'
require 'carrierwave/datamapper'
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
end
DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/photogallery.sqlite3")
class Image
include DataMapper::Resource
property :id, Serial
property :title, Text
mount_uploader :image, ImageUploader
end
DataMapper.finalize
DataMapper.auto_migrate!
get "/" do
@images = Image.all
erb :index
end
post "/" do
image = Image.new(:title => params[:title])
image.image = params[:image]
image.save
redirect "/"
end
__END__
@@ index
<% @images.each do |image| %>
<p>
<%= image.title %>
</p>
<a href="<%= image.image.url %>">
<img src="<%= image.image.url %>">
</a>
<% end %>
<form action="/" method="post">
<label for="title">Title</label>
<input type="text" name="title"><br>
<label for="image">Image</label>
<input type="file" name="image"><br>
<input type="submit" value="Save">
</form>
当我从计算机上传图像时,我似乎无法显示图像。就好像图像没有保存在任何地方,因此无法检索。
锚标记正确地引用了图像应该在的位置,但没有图像。
我做错了什么?
【问题讨论】:
-
不要把解决方案放在你的问题中。 SO 不是留言板,它更像是在线问答参考或食谱。因此,问题和答案是分开的,必须分开。见meta.stackoverflow.com/a/271399/128421 和meta.stackoverflow.com/q/267434/128421。
-
谢谢,我知道了。但显然我的答案太长而无法作为评论发表,所以我不得不进行编辑。但请记住,谢谢
-
我现在才发现你可以按“回答你的问题”,所以我猜我有点厚
-
“谢谢,我知道。但显然我的回答太长了,无法作为评论发表,所以我不得不进行编辑。”?不。该网站有理由强制执行某些事情。 SO希望您参加巡回演出,当您参加旅行时,他们会奖励您积分,从而为您提供新的特权。这是一根棍子上的胡萝卜。请通过Stack Overflow tour。
标签: sinatra carrierwave datamapper