0

我希望能够拥有一个文本文件(不受开发人员对内容的控制),并让我的代码从该文件中选择条目并将它们显示在网络应用程序中(或对它们执行其他操作)

例如,此文本文件可以是人员列表,或按顺序或随机显示在屏幕上的名言。

我的问题是实现这一点的最简单方法是什么?我应该把它放在 XML 中并解析它吗?把它放在 YAML 中?我在哪里进行解析?在控制器或初始化程序中?

4

2 回答 2

1

如果您能够在内容更改时重新部署您的应用程序,请将其放入 YAML 文件中。YAML 已经在 Rails 代码中的多个地方使用。无需添加额外的宝石。您也可以使用 JSON。取决于你发现什么更具可读性。

如果您想在不重新部署的情况下更改内容,请将数据放入数据存储中并构建用于更改它的表单。

于 2012-10-22T07:02:14.507 回答
1

对于非技术人员来说,没有什么比纯文本文件更好的了。强制一些简单的结构,例如

  • 每个条目一行,或
  • 条目之间的空白行,或
  • 以您认识的某个标记开头的标题(例如 ==)

读取纯文本文件的示例:

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

于 2012-10-22T07:19:41.573 回答