在js模板中渲染模型错误,如JSON

时间:2013-06-17 21:38:48

标签: ajax json ruby-on-rails-3 model error-handling

我使用 data-remote = true 属性提交表单。控制器中的 create 操作如下所示:

format.js { @user }

并由以下模板处理:

create.js.erb

是否有一种简单的方法可以呈现@97. @ users.errors消息,如JSON,以便在当前模板中使用以下JSON并处理错误呢?

我知道我可以使用 format.json 指令渲染错误,但我想制作和其他JavaScript操作,不仅渲染错误,因此我使用格式.js tehnique。

1 个答案:

答案 0 :(得分:0)

使用to_json方法可以轻松解决这个问题。为了渲染传递的模型对象,我应该这样做:

var current_errors = <%=  @security_user.errors.to_json %>;

无论如何,这仍然没有呈现正确的JSON,因为引号是由rails自动编码的(以防止XSS),因此您应该使用以下方法之一:

  1. html_safe
  2. raw
  3. ħ
  4. 有关这些内容的更多信息,请访问此处 - raw vs. html_safe vs. h to unescape html

    对我有用的最终解决方案是:

    var current_errors = <%=  raw @security_user.errors.to_json %>;