我有一个应用程序设置(数组和哈希)的yaml文件,我希望用户能够通过视图进行编辑。这样做的最佳方式是什么?
将yaml文件加载到视图助手fields_for
可以使用的对象中?那么一个ActiveModel或OpenStruct对象?
这些是应用程序设置,与特定用户无关。
最后,我根据Dmitri的建议使用了带有序列化列的临时活动记录对象,然后可以使用YAML.dump(app_config.settings,file)创建yaml文件
答案 0 :(得分:1)
为什么要将用户的设置存储在YAML文件中?在用户表中创建一个列并为该列添加序列化规则会不会更容易 - 它会产生几乎相同的结果,并且您将能够使用所需的所有东西而不会有任何痛苦
如果您是那么顽固,那么为用户的控制器创建一个单独的操作并发布form_tag
(即无模型行为)表单,然后应用所有逻辑来重写文件中的数据,例如.. YAML.load_file,更新并写回文件。