0

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

由于我使用 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 传递错误/成功消息并在前端适当地处理它们?只替换整个表格是不好的做法吗?

4

0 回答 0