我在视图形式中有这一行:
<%= 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
使用的逃逸),并且您会看到类似的事情发生。