在Ruby on Rails 3.2.12项目中,我想在静态文件中存储模型的数据。
我不需要能够通过应用程序写入数据,并希望通过更改静态文件来处理更新和添加新对象。
有没有办法设置模型,然后说“查看此文件(或文件夹)查找记录”,而不是数据库(该应用程序还有数据库)?
我可以想象数据以两种主要方式存储:
我的应用程序有一个词汇表。词汇表中的每个条目都应该是一个单独的记录。
将会有一个词汇表索引页面(/词汇表),就像您的standard glossary一样,列出了所有术语和定义。每个单独的记录(术语+定义)也需要单独检索,以便在其他页面的脚注中使用。
我希望人们能够通过github编辑文件来编辑词汇表。它们可以指向包含所有记录的单个文件,或者(最好)只包含他们想要编辑的记录的单个文件(处理的语法更少,风险更小)。
非常感谢你的帮助!
答案 0 :(得分:2)
ActiveHash将是一个很好的解决方案。如果您希望将数据存储在单独的yaml文件中而不是直接存储在模型中,则可以使用ActiveYaml配置。
答案 1 :(得分:1)
除非有人提出更好的解决方案,或者使用可以开箱即用的宝石,我建议使用自己的查找和保存方法构建自己的模型。像(未经测试)的东西:
class Term
attr_accessor :name, :definition
def self.find(name)
YAML.load(File.read("#{name}.yaml"))
end
def save
File.open("#{name}.yaml", 'w'){ |f| f.write(YAML.dump(self)) }
end
end