Rails JSON在字符串中保持反向



我在视图形式中有这一行:

<%= hidden_field_tag "ng_b2b_configuration[value][endpoints][][patterns][]", raw(".+\\.runsheet\\..+") %>

它将产生结果:

"patterns":[".+\.runsheet\..+"]

这不是我真正想要的。我的问题是如何保存在我的DB之后?

如何保留后背?

这正是我想要的: "patterns":[".+.runsheet..+”]

我已经尝试了:<%= hidden_field_tag "ng_b2b_configuration[value][endpoints][][patterns][]", raw(".+\\.runsheet\\..+"), class: "val_runsheet_all" %>和结果:"patterns":[".+\.runsheet\..+”]

更新1

这是HTML输出:

<input type="hidden" name="ng_b2b_configuration[value][endpoints][][patterns][]" id="ng_b2b_configuration_value_endpoints__patterns_" value=".+.runsheet..+">

value=".+.runsheet..+"在html Will> Will 中最终在Ruby中以 '.+.runsheet..+'的形式,因此您在某个地方感到困惑。您将做的任何事情(没有骗局)会给您一个像:

的字符串
".+.runsheet..+"

在Ruby或Json中。在红宝石双引用字符串和JSON格式的字符串中,后斜线都具有特殊的含义。都没有人需要后斜切才能逃脱.,因此也不会将其放在那里。但是,由于在Ruby Double引用字符串和JSON中具有特殊的含义,因此单个看起来像\,因为两者都必须逃避的特殊平均值,嗯,逃脱了逃生字符。

进入irb并说:

puts ".+.runsheet..+"

看看你得到了什么。然后说:

puts ".+\.runsheet\..+"

看看你得到了什么。第一个会给你:

.+.runsheet..+

和第二个:

.+.runsheet..+

然后,您可以投入一些to_json调用(再次使用puts来查看结果,以免避免inspect使用的逃逸),并且您会看到类似的事情发生。

最新更新