【问题标题】:How do I prevent render from HTML encoding data in rails如何防止在 Rails 中渲染 HTML 编码数据
【发布时间】:2013-01-21 03:25:08
【问题描述】:

在我的控制器中,我希望在 json 响应中返回 HTML,然后使用 .html() 通过 jQuery 将其插入到 div 中。

我的控制器:

div_content = view_context.link_to "logout", logout_path, method: :delete + '<div class="
return render :json => {:success => true, :username => current_user.email, :div_content =>  div_content}

javascript:

$('#special_div').html(data.div_content)

此内容是 html 编码的,因此 HTML 不会呈现。我知道我可以在 javascript 端使用正则表达式或其他东西转换字符串,但不从服务器发送编码似乎是有意义的。

【问题讨论】:

  • 您可以尝试将div_content 传递给raw 吗? view_context.raw(div_content) 或仅使用 div_content.html_safe。我不确定它是否会起作用。
  • 我试过 view_context.raw,但没有用。我刚刚尝试了 html_safe,但没有成功。 html_safe不会把东西转换成html实体代码吗?
  • 我会在 JavaScript 中使用 JSON 变量构建 html 客户端,而不是将 html 与 json 混合...
  • 我会走那条路,但我需要使用辅助函数来创建链接。

标签: jquery ruby-on-rails ruby json


【解决方案1】:

我发现更正确的解决方案是渲染一个部分,其中包含所需的所有逻辑和格式。这更有意义,因为在部分中您可以使用模板引擎等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 2020-07-25
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多