gpt4 book ai didi

ruby-on-rails - 从文本字段中检索 YAML

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:48 26 4
gpt4 key购买 nike

serialize 方法允许像散列这样的对象作为 YAML 字符串存储在数据库中。但是,我最近发现自己想要一个文本字段以允许用户输入他们自己的字符串并让 Controller 创建该字符串的散列。

<%= f.text_field :yaml, :value => '--- \nlast_name: Smith\nfirst_name: Joe\n' %>

是的,我想要单引号:我想在显示中保留\n。但问题是,结果,结果字符串对象被转义:

--- \\nlast_name: Smith\\nfirst_name: Joe\\n

我通过两个正则表达式运行字符串:第一个用单个反斜杠替换双反斜杠。然后 next 将\n(两个字符)转换为\n(特殊的单个字符)。

所以在我的 Controller 中:

yhash = YAML.load(params[:form][:yaml].gsub(/\\\\/, "\\").gsub(/\\n/, "\n"))

这现在有效,但看起来非常复杂。有没有更优雅的用户提交 yaml 的方式?

最佳答案

您是说您希望用户能够编写 \n 来标记他们输入的 yaml 中的换行符?因为在那种情况下,您现在使用正则表达式执行此操作的方式非常简单。

转义序列 \n 是 Ruby 字符串的一个特性。如果您也想在 Web 表单 yaml 界面中实现它,正则表达式是一种有效的方法。

您确定必须进行双斜杠替换吗?我认为如果您执行 .inspect,它应该只显示为双斜杠。

关于ruby-on-rails - 从文本字段中检索 YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4763652/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com