在Ajax警报中显示Rails错误消息

时间:2013-03-31 17:29:49

标签: javascript jquery ruby-on-rails ajax

使用Rails 3.2。我想知道我们如何将错误从Rails推送到Ajax警报中显示。这是我的代码:

# posts_controller.rb
def update
  @post = Post.find(params[:id])

  if @post.update_attributes(params[:name] => params[:value])
    render :nothing => true
  else
    render :text => @post.errors.full_messages[0], :status => :unprocessable_entity
  end
end

# _form.html.erb
$("#status_buttons button").click(function() {
  $.ajax({
    type: 'POST',
    url: "<%= post_path(@trip) %>",
    data: { _method: 'PUT', name: this.name, value: this.value },
    error: function() {
      alert(" *****************Rails error message here**********************");
    }
  });
});

传统的验证错误消息应出现在alert()中。有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

确定的一种方法是将至少3个参数传递给回调函数,并检查控制台(或警报)是否有任何参数传递错误。

error: function(a,b,c) {
  alert('a contains ' + a);
  alert('b contains ' + b);
  alert('c contains ' + c);
}

其中一个应该包含错误消息:)祝你好运!

答案 1 :(得分:0)

error: function( jqXHR, textStatus, errorThrown ) { ...