用html或json回复远程form_for?

时间:2013-10-29 15:05:09

标签: ruby-on-rails ajax activerecord

我目前有几个部分包含不同AR模型的表单。我正在使用这些来构建仪表板式页面,这样我就可以向CRUD控制器发送一个ajax帖子(而不是在仪表板控制器中发布一堆不同的动作)。

由于我使用AR来验证数据,我希望能够使用CRUD控制器中的正确对象呈现正确的部分,并将其用作我的响应。像这样:

if @note.save?
  flash[:notice] = "Note successfully saved!"
  render '_note_form', :layout => false
else
  flash[:notice] = "Something went wrong. Note was not saved!"
  flash[:error] = @note.errors.full_messages.to_sentence
  render '_note_form', :layout => false
end

然后我添加了一个js函数来处理响应,方法是将表单替换为响应,如下所示:

$(function() {
    $('form#new_note_form').bind('ajax:success', function(evt, data, status, xhr){
        $("#new_note_form").replaceWith(xhr.responseText);
    });
});

这给了我验证相同类型的验证,如果我做了一个标准的帖子,我会看到,但只刷新部分而不是整个页面。

我情不自禁地觉得有更好的方法可以解决这个问题。我应该只是通过json传递错误/成功消息并在前端适当地处理它们吗?仅仅替换整个表单是不好的做法吗?

0 个答案:

没有答案