在Rails中没有帮助程序的Ajax

时间:2015-01-21 23:49:23

标签: jquery ruby-on-rails ajax coffeescript

是否可以在没有远程帮助程序的情况下在rails中执行Ajax发布请求?我试图用这个代码自己做(coffeescript在下面)现在我在提交表单时收到一个ActionController :: UnknownFormat错误:

  def create
    @soup = Soup.new(soup_params)
    unless @soup.save
      flash[:danger] = "You failed"
    end
    respond_to do |f|
      f.js
    end
  end


  $('form').on('submit', function(event) {
    var form;
    event.preventDefault();
    form = $(this);
    return $.ajax('/soup', {
      type: 'POST',
      data: form.serialize,
      success: function(result) {
        return form.remove();
      }
    });
  });


= form_for(Soup.new) do |f|
  = f.text_field :name
  = f.number_field :age
  = f.submit

1 个答案:

答案 0 :(得分:0)

您获得ActionController::UnknownFormat,因为您只回复js格式。

我会将您的控制器更改为:

resond_to do |format|
  format.json { render json: @soup }
end

和javascript:

$.ajax('/soup.json', {
  // ...
})

此外,你的闪光灯没有做任何事情,因为你只回应json。你可能最好调用save!并在你的ajax调用中添加一个错误处理程序。