执行rake db:create时遭遇NoMethodError: undefined method `flat_map'错误求助
问题根源
你的database.yml文件存在两处格式错误,导致Rails无法正确解析数据库配置:
- 文件开头多了一行
cat database.yml,这是终端查看文件的命令,不属于YAML配置内容 - 第一行注释错误写成
/# PostgreSQL. Versions 9.3 and up are supported.,YAML注释必须单独以#开头,加斜杠会让解析器把这行当成字符串节点而非注释。Rails处理配置时会尝试对这个字符串调用仅适用于数组/可枚举对象的flat_map方法,因此抛出undefined method 'flat_map' for String错误。
修复步骤
编辑
/home/edlaier/config/database.yml文件:- 删除第一行的
cat database.yml - 将第二行的
/# PostgreSQL. Versions 9.3 and up are supported.修改为# PostgreSQL. Versions 9.3 and up are supported.(去掉开头的斜杠)
- 删除第一行的
保存文件后重新运行命令:
rake db:create
补充说明
YAML配置文件格式要求严格:
- 注释必须以
#开头,#前不能有其他无关字符 - 不要将终端命令混入配置文件内容中
内容的提问来源于stack exchange,提问作者Edward
相关产品推荐
相关产品推荐

