我有一个用于创建图像的远程表单。每次更改文件输入时,它都会提交表单。
<%= form_for Image.new, remote: true, multipart: true do |f| %>
<!-- form omitted -->
<% end %>
自动提交:
$("#new_image input[type=file]").on("change", function() {
$("#new_image").submit();
});
创建图像并在图像控制器中渲染 json 就好了:
def create
@image = Image.new params[:image]
if @image.save
render json: @image, status: :success
else
render json: @image.errors, status: :unprocessable_entity
end
end
问题是用户被重定向到 json 输出。怎么会这样?表单是远程的:true,所以它不应该重定向对吗?我只希望数据可用于不引人注目的回调。
我怎样才能让它工作?
编辑:application.js
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .