有一些配置,想通过WEB界面管理。但没有必要存入数据库,用yml文件方便些。
读文件比较简单:
def self.get_config
YAML::load(File.read(Rails.root.to_s + '/config/points_base_rules.yml'))
end
读取对象之后,就可以显示在form上了,编辑之后,put 到server, server再将数据写入yml
写文件方法:
def self.save(rules)
result = true
begin
File.open(Rails.root.to_s + '/config/points_base_rules.yml', 'w') { |f|
YAML.dump(rules, f)
}
rescue => err
logger = Logger.new(Rails.root.to_s + '/log/err.log')
logger.error err
logger.close
result = false
end
result
end
这种方法在需要写的数据中包含中文时,会出现异常:
<Encoding::UndefinedConversionError: "\xE7" from ASCII-8BIT to UTF-8>
后来google了好久,终于找到解决方法:
gem install ya2yaml
在Gemfile里:
gem 'ya2yaml'
然后修改写文件的方法:
require 'ya2yaml'
def self.save(rules)
result = true
begin
File.open(Rails.root.to_s + '/config/points_base_rules.yml', 'w') { |f|
#YAML.dump(rules, f)
f.puts rules.ya2yaml
}
rescue => err
logger = Logger.new(Rails.root.to_s + '/log/err.log')
logger.error err
logger.close
result = false
end
result
end
问题解决!
分享到:
相关推荐
3. **config** 目录:包含Rails的配置文件,如数据库配置(database.yml)、环境变量(secrets.yml)和路由配置(routes.rb)。 4. **app** 目录: - **models**:包含数据模型,定义业务逻辑和数据库交互。 - **...
- **权限问题**: 确保所有文件和目录具有正确的读写权限。 - **依赖库问题**: 检查是否所有必要的依赖库都已正确安装并配置。 - **环境变量问题**: 确认所有路径都已正确添加到环境变量中。 - **数据库连接问题**: ...
Redmine 是一个开源的、基于Web的项目管理应用程序,它由Ruby on Rails框架构建。这个“redmine-2.6.7 For Linux版本”安装包是专为Linux系统设计的,旨在帮助用户在Linux环境中部署和管理项目。下面将详细介绍...
安装完成后,登录MySQL (`mysql -u root -p`),创建一个名为`redmine`的数据库,并设定字符集为utf8。创建一个名为`redmine`的用户,并为其分配访问`redmine`数据库的权限,设置合适的密码。 最后,下载Redmine的源...
CREATE DATABASE redmine CHARACTER SET utf8; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'all-suit.com'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; FLUSH PRIVILEGES; ``` 这部分操作...
在Linux环境下搭建Redmine是一个涉及多个步骤的过程,主要涵盖了Ruby的安装、RubyGems的安装、Rails框架的安装、MySQL数据库的配置以及Redmine本身的安装和配置。以下是对这些步骤的详细说明: **一、Ruby的安装** ...
Redmine 是一个开源的项目管理工具,主要用于任务追踪、问题管理、文档管理和版本控制集成。在Linux环境下安装Redmine,可以充分利用Linux系统的稳定性和安全性,为团队协作提供强大的支持。以下是一个详细的Redmine...
ActiveRecordSharding 待办事项:撰写宝石描述 安装 将此行添加到应用程序的Gemfile中: ... 分片配置config/shards.yml development: # Rails.env user: # shard name - user_shard_1_development
`.yml`(YAML Ain't Markup Language)文件,常用于存储结构化的配置数据,便于读写和解析。在"config_files-master"这个目录下,可能包含的就是这样的文件。 1. **Ruby配置文件(.rb)** - `.rb`文件可以用来定义...
在"Motorbikes_MVC-master"这个压缩包中,可能包含了项目的所有源代码,如Ruby文件(`.rb`)、模板文件(`.html.erb`)、样式表(`.css`)、配置文件(`.yml`)以及可能的测试文件(`.rb`)。解压后,我们可以查看...
Redmine 是一个开源的、基于Web的项目管理和问题跟踪系统,它使用Ruby on Rails框架构建。3.1版本是Redmine的一个稳定版本,提供了一系列改进和新特性,旨在提升项目协作和任务管理的效率。 在将Redmine 3.1版本...
MongoRails是在Ruby on Rails应用中使用MongoDB作为数据存储的框架。MongoDB是一个NoSQL数据库,它使用文档型数据模型,提供了灵活性和高性能,而Rails是Ruby语言的一个流行Web开发框架,基于MVC(模型-视图-控制器...
4. **文件和目录操作**:项目可能需要读写本地文件来持久化任务数据,或者处理项目目录结构。 5. **命令行界面**:如果项目是一个 CLI 应用,那么会涉及到 `gets` 和 `puts` 交互,或者更复杂的 TTY 库如 `tty-...
在Ruby on Rails应用中,数据访问层主要由ActiveRecord库负责,它是一个强大的ORM(对象关系映射)工具,能够方便地将数据库操作转化为面向对象的代码。然而,随着应用程序的增长,单一数据库服务器可能无法满足高...
该应用程序有 1 个主节点(在 database.yml 中指定)和 4 个从节点(在 shards.yml 中指定)。 功能列表: 所有写入都将发送到主站,读取查询将发送到从站。 除非您有交易,否则所有查询都将发送给 master。 该...