ruby - 如何存储应用程序的首选项?

标签 ruby programming-languages metaprogramming

我是 Ruby 的新手,主要从事 PHP/SQL 的网络开发。我在考虑如何在我的应用程序中存储首选项。例如,如果我想将路径存储为 default_path 并在用户重新启动应用程序时也设置该路径。

在网络世界中,人们可能会将其存储在数据库或 XML 中。数据库对于独立应用程序来说似乎有点过分了。但我不确定 XML/YAML/Other-Write-Format 是否可行。如果是这样,我应该在哪里存储这些首选项?例如,在 Mac 上,它们应该在 ~/Library/MyAppName 中吗?

最佳答案

我喜欢使用 YAML,因为它很容易被多种语言读取/写入,这使得多个应用程序可以共享相同的配置信息。这是一个有据可查的标准,因此数据陷入漏洞的可能性应该很小。

此外,由于它易于人类理解,并且不需要任何特殊工具即可更改,因此它可以很好地处理应用程序中可能偶尔更改的任何数据,以进行微调或启用特殊行为。

您的部分创意代码可以定期检查 YAML 文件的最后修改时间,这样您的应用程序就可以在调整 prefs 文件时即时修改其行为。我有一个很大的应用程序,我不想因为更改而关闭并设置该行为。它连续运行了三个星期,我通过它的配置文件调整了它的运行参数。它会每分钟读取一次文件,并即时继承对其参数的任何更改。

如果是集中式服务器或基于网络的应用程序,数据库是存储参数/偏好的好方法。对于在单个机器上运行的分布式东西来说,这是没有意义的。

关于ruby - 如何存储应用程序的首选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5384817/

相关文章:

ruby-on-rails - Ruby 中哪个与 Delphi SizeOf 函数等效?

arrays - 如何将 ruby​​ 中的数组切片为指定长度的子数组?

javascript - 解释为 Javascript 的语言?

programming-languages - 你会在你的操作系统中使用哪种语言?

c++ - 什么是 MPL 值习语?

c++ - 用于对类进行不同的部分特化的 Varadiac 宏

Ruby:捕获异常后继续循环

ruby - 如何在 ruby​​ 中解析天/小时/分钟/秒?

f# - F# 中的非类型化/类型化代码引用与宏卫生之间是否存在关系?

c++ - 在模板实例化期间,文字值不被视为常量表达式