我希望能够拥有一个文本文件(不受开发人员对内容的控制),并让我的代码从该文件中选择条目并将它们显示在网络应用程序中(或对它们执行其他操作)
例如,此文本文件可以是人员列表,或按顺序或随机显示在屏幕上的名言。
我的问题是实现这一点的最简单方法是什么?我应该把它放在 XML 中并解析它吗?把它放在 YAML 中?我在哪里进行解析?在控制器或初始化程序中?
我希望能够拥有一个文本文件(不受开发人员对内容的控制),并让我的代码从该文件中选择条目并将它们显示在网络应用程序中(或对它们执行其他操作)
例如,此文本文件可以是人员列表,或按顺序或随机显示在屏幕上的名言。
我的问题是实现这一点的最简单方法是什么?我应该把它放在 XML 中并解析它吗?把它放在 YAML 中?我在哪里进行解析?在控制器或初始化程序中?
如果您能够在内容更改时重新部署您的应用程序,请将其放入 YAML 文件中。YAML 已经在 Rails 代码中的多个地方使用。无需添加额外的宝石。您也可以使用 JSON。取决于你发现什么更具可读性。
如果您想在不重新部署的情况下更改内容,请将数据放入数据存储中并构建用于更改它的表单。
对于非技术人员来说,没有什么比纯文本文件更好的了。强制一些简单的结构,例如
读取纯文本文件的示例:
data = File.read('/path/to/file.txt')
data.lines.each do |line|
puts "Read line: #{line}"
end
# or split by an empty line (btw, non-technical users can insert spaces in blank lines)
# also, remove leading and trailing whitespace from entries (i.e the newlines)
entries = data.split(/^\s*$/).map(&:strip)
另一种选择是使用一些降价并将解析的文本用于您的内容,尽管这会为您的项目引入新的宝石,例如RedCarpet。