Rails 4显示回形针临时文件

时间:2015-03-04 20:06:18

标签: ruby-on-rails-4 paperclip

我有一个表单和一个按钮,在提交之前显示页面的预览。我可以显示我的模型的所有属性,但为了爱我,不能显示回形针附件。 我的事件模型的创建操作如下所示,如果单击预览按钮,我将呈现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图像吗?如何访问临时文件并在视图中显示?

谢谢!

1 个答案:

答案 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]);
    }
}