You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SLIM和Rails中将Ruby哈希转JSON嵌入DOM的data属性

SLIM嵌入JSON数据到DOM属性的正确实现方案

你遇到的引号解析异常是因为JSON内部的双引号和HTML属性的边界引号冲突,SLIM的方括号属性语法对嵌套引号的处理存在限制,所以会出现属性被异常拆分的情况。

正确写法

你直接在属性名后用=关联Ruby表达式即可,SLIM会自动处理引号转义,无需手动处理:

#product-modal.modal.fade tabindex="-1" role="dialog" aria-label="myModalLabel" aria-hidden="true" data-product-info=product_data.to_json

实现说明

  • 该写法生成的HTML会自动将JSON内部的双引号转义为",浏览器会自动识别转义符,不会出现属性拆分问题
  • jQuery的data()方法会自动解析转义后的JSON字符串为JS对象,你可以直接读取属性,无需额外调用JSON.parse()

静态JSON的写法

如果你需要直接写入静态JSON字符串,只需转义内部双引号即可:

#product-modal.modal.fade data-test='{\"a\": 10, \"b\": 20}'

注意事项

  • 不推荐将包含嵌套引号的属性放到SLIM的方括号[]语法中,该语法对复杂属性值的解析兼容性较差
  • 你提供的JS示例中存在笔误:cosole应为console,避免运行时报错

内容的提问来源于stack exchange,提问作者Ziyan Junaideen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:15:04