我有一个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
请提出建议
答案 0 :(得分:1)
查看此博文http://railsblaster.wordpress.com/2007/09/20/ajax-forms-and-file-uploading-in-rails/
由于某些安全原因,form_remote_tag和file_field不会相互结婚。该博客文章将为您提供一些替代选项。