java中为某个应用自定义配置文件,一般两种方式,采用*.properties或者xml文件,利用java.util.Property或者xml的API读或者存配置信息,如果配置信息多且复杂的话,解析xml是个不小的麻烦事。而ruby,我们可以采用yaml来存储配置信息。
举个简单例子:
users = [{:name => 'Bob', :permissions => ['Read']}, {:name => 'Alice', :permissions => ['Read', 'Write']}]我们把它存在users文件:
open('users', 'w') { |f| YAML.dump(users, f) }
如果在rails的controller中调用上面的代码,将在此应用的根目录下生成一个users文件,如果你希望此文件放在model里,可以这样写:
open('app/models/users', 'w') { |f| YAML.dump(users, f) }
users文件格式如下:
--- - :permissions: - Read :name: Bob- :permissions: - Read - Write :name: Alice
你可以修改此文件,注意在symbol和它的value之间不能缺少空格。读取的话采用YAML.load方法:
users2 = open("users") { |f| YAML.load(f) } |