ruby 修改Setting config yaml内容
参考:http://ruby-doc.org/stdlib-1.9.3/libdoc/yaml/rdoc/YAML/Store.html
本事例只为说明如何修改yml文件内容。
一、需求是怎么样修改yml文件内容?
配置文件名称为webinfo.yml,内容为:
development:
webinfo:
webtitle: 我的网站名称
keyword: 网站的关键字
production:
webinfo:
webtitle: 上线后的网站名称
keyword:上线后的网站的关键字
二、我是怎么做的?
我的思想是:首先取到配置文件的所有内容,把内容转换为json对象或hash对象,然后把某个字段的值修改为自己的内容,再把整个json或hash转换成yml写回到yml配置文件。
1、获取内容并转化为json或hash
获取文件内容的方式有很多,这里介绍两种方式:使用YAML.load(File.open(filepath))或YAML.load_file(filepath)和使用Gem包settingslogic(settingslogic的使用请参考:https://github.com/binarylogic/settingslogic)
这里我使用settingslogic这种方式:新建一个类(比如在models文件夹下),类名:Webinfo,内容为
class Webinfo< Settingslogic
PATH = "#{Rails.root}/config/webinfo.yml"
source PATH
namespace Rails.env
end
在controller里的使用Webinfo.webinfo或Webinfo["webinfo"]来获取到内容,代码如下:
def get_webinfo
info = Webinfo["webinfo"]
puts info.inspect
title = info["webtitle"]
puts title
end
2、修改某个字段的值
在Webinfo类新增保存方法:
require 'yaml/store'
class Webinfo< Settingslogic
PATH = "#{Rails.root}/config/webinfo.yml"
source PATH
namespace Rails.env
def self.save(content)
store = YAML::Store.new PATH
store.transaction do
store[Rails.env]["webinfo"] = content.to_hash //如果不加["webinfo"] ,将会将原先的全部删掉,只保留这个
end
end
end
在controller里的新建修改的方法,代码如下:
def update_webinfo
info = Webinfo["webinfo"] # 获取
info["webtitle"] = "新的网站名称" //设置要更新的
Webinfo.save(info) # 保存
end
这样就把这个属性的内容改掉了。
ruby 修改Setting config yaml内容的更多相关文章
- 转:NLog 自定义日志内容,写日志到数据库;修改Nlog.config不起作用的原因
转:http://www.cnblogs.com/tider1999/p/4308440.html NLog的安装请百度,我安装的是3.2.NLog可以向文件,数据库,邮件等写日志,想了解请百度,这里 ...
- SAE设置记录:修改config.yaml实现地址重写和修改固定链接
刚搭建完sae博客后闲置下来了,偶尔写两篇文章,最近想整理整理sae,于是开始. 刚新建完博客修改固定链接,可是保存后直接访问出现问题,访问不到文章了,而且我的博客地址前面会出现"1.&qu ...
- C#项目实例中读取并修改App.config文件
C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...
- WPF C#之读取并修改App.config文件
原文:WPF C#之读取并修改App.config文件 简单介绍App.config App.config文件一般是存放数据库连接字符串的. 下面来简单介绍一下App.config文件的修改和更新. ...
- 如何修改 app.config 的配置信息
如何修改 app.config 的配置信息 收藏 最问这个问题的人有点多,其实 .Net 提供了这样的功能我们可以在 app.config 中 userSettings 节点中保存我们的应用程序设置信 ...
- 修改 App.Config 配置文件 C#
[转]在WCF程序中动态修改app.config配置文件 今天在个WCF程序中加入了修改配置文件的功能.我是直接通过IO操作修改的app.config文件内容,修改后发现发现其并不生效,用Google ...
- 修改web.config来开启Gzip压缩
IIS 7.0之后引入的一个IIS配置文件,详细内容参考官方链接http://www.iis.net/learn/get-started /planning-your-iis-architecture ...
- AppModify修改app.config
public class AppModify { /// <summary> /// 依据连接串名字connectionName返回数据连接字符串 /// </summary> ...
- 在WCF程序中动态修改app.config配置文件
今天在个WCF程序中加入了修改配置文件的功能.我是直接通过IO操作修改的app.config文件内容,修改后发现发现其并不生效,用Google搜了一下,在园子里的文章动态修改App.Config 和w ...
随机推荐
- yii2.0操作数据库
首先不得不说yii2.0面向对象的比较彻底,建议没学过或者没学好面向对象的同学再看看面向对象. 其次切入正题. 先创建数据库,这步自己写. DROP TABLE IF EXISTS `country` ...
- 当springMVC 容器初始化完成后执行某个方法
分类: spring java2013-06-19 16:40 8289人阅读 评论(4) 收藏 举报 在某些应用中,我们希望,当spring 容器将所有的bean都初始化完成后,做一个操作(例如:将 ...
- InstallShield Build Error -1014: Cannot rename directory <PATH> to <PATH>\folder.Bak.
InstallSheild执行Build结果错误: 错误详细信息: Cannot rename directory <PATH> to <PATH>\folder.Bak. W ...
- Unable to acquire Oracle environment handle 问题的解决
---恢复内容开始--- 转自:http://blog.csdn.net/zhangweiwindow/article/details/6575224 今天重装了一下系统,所以以前工作时配置的pyth ...
- 《jquery权威指南2》学习笔记------ jquery获取复选框的值
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- Echarts 的悬浮框tooltip显示自定义格式化
最近做的项目用到echarts雷达图,但是由于地市过多,遇到悬浮框显示问题被遮住 如图: 可以看到上面从兴安开始数据就被遮住了 为了解决这个被遮住的悬浮框,达到tooltip自定义格式 完成后的效果如 ...
- 【BZOJ3622】已经没有什么好害怕的了 容斥+DP
[BZOJ3622]已经没有什么好害怕的了 Description Input Output Sample Input 4 2 5 35 15 45 40 20 10 30 Sample Output ...
- asp 中创建日志打印文件夹
string FilePath = HttpRuntime.BinDirectory.ToString(); string FileName = FilePath + "日志" + ...
- vue 二级列表折叠面板
请求出来的数据是二级列表,需要点击一级列表展开相应的二级列表 data(){ return { info: [ {name:'一级菜单1',lists:[{price:1},{price:2}]}, ...
- nvm-windows 安装后,node 命令报错
下载地址: https://github.com/coreybutler/nvm-windows/releases 我是点下面这个直接安装的: 配置文件,我都是习惯在软件目录下建个 files 文件夹 ...