我有一个表单和一个按钮,在提交之前显示页面的预览。我可以显示我的模型的所有属性,但为了爱我,不能显示回形针附件。 我的事件模型的创建操作如下所示,如果单击预览按钮,我将呈现preview.html.erb视图并向用户显示我的事件属性:
def create
@event = Event.new(event_params)
if params[:preview]
render 'preview'
return
else
#process normally and save
end
end
活动模型附有文件'图像'通过Paperclip:
class Event < ActiveRecord::Base
has_attached_file :image, :styles => {:gallery => "640x320#", :thumb => "100x100#"}
end
在preview.html.erb视图中,我试图显示Paperclip在保存之前创建的临时文件,但这不起作用。在视图中我使用它:
<%= image_tag @event.image.queued_for_write[:gallery].path %>
但是,在渲染预览页面时,图像丢失。在模型保存之前,有人可以帮我显示Paperclip图像吗?如何访问临时文件并在视图中显示?
谢谢!
答案 0 :(得分:0)
使用Javascript。您的表单应如下所示:
<%= image_tag @user.avatar, id: 'avatar-preview' %>
<%= f.file_field :avatar, onchange: "readUploadImage(this)" %>
你的JS:
function readUploadImage(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#avatar-preview')
.attr('src', e.target.result)
.width(300)
.height(300);
};
reader.readAsDataURL(input.files[0]);
}
}