form_remote_tag用于上传Paperclip文件附件

时间:2011-05-13 09:18:37

标签: ruby-on-rails ajax forms

我有一个rails表单,其中包含一个图片上传字段,如:

<% form_for @c, :html => { :multipart => true } do |f| %>
   <%= f.file_field(:b, :size=>63, :class=>"fontsize13") %>
   <%= image_tag @c.b.url(:thumb) %>
<% end %>

保存此表单时,操作为

def update
  @c = C.find(params[:id])
  if params[:c]
    @c.update_attributes(params[:c])
    if @c.save
               redirect_to :action => "index"
    else
      flash[:error] = @c.errors.full_messages.join('<br />')
    end
  end
end 

这将上传图像并再次加载同一页面,以显示在预览和布局徽标中上传的图像。

我试图通过ajax显示图像,而不是再次刷新页面。

我已尝试使用

的form_remote_tag
<% form_remote_tag :url => {:controller => "c",:action => "update"}, :html => {:multipart => true } do |f| -%>
  <%= f.file_field :b%>
<% end %>

但这会将错误显示为Undefined method file_field for nil

请提出建议

1 个答案:

答案 0 :(得分:1)

查看此博文http://railsblaster.wordpress.com/2007/09/20/ajax-forms-and-file-uploading-in-rails/

由于某些安全原因,

form_remote_tag和file_field不会相互结婚。该博客文章将为您提供一些替代选项。