Rails AJAX重新加载页面。为什么?

时间:2014-12-31 09:23:40

标签: ruby-on-rails ajax

我创建了一个表单:

<%= form_for @cover, :remote => true, :html => { :multipart => true } do |file| %>
    <%= file.file_field(:image, :class => 'choose_image', :onchange => 'this.form.submit()') %>
    <input name="authenticity_token" type="hidden" value="<%=form_authenticity_token %>"/>
<% end %>

所以,当我选择上传图像时,确定,但在重新加载页面并清除所有数据之后。我该怎么修呢?

更新

我的coverController:

def create
    @cover = Cover.create(cover_params)

    if @cover.save
        redirect_to :back
    end
end

1 个答案:

答案 0 :(得分:0)

作为浏览器安全方面,您无法通过jquery ajax直接上传图像/文件。您需要创建一个Iframe,或者您可以使用flash(SWF)。

在你的情况下:remote => true什么都不做,只需提交表单而不是ajax提交。

您需要添加remotipart gem才能实现所需的行为。在这个gem中你还需要添加:remote => true,表单将以ajax方式提交。