Ruby on Rails mysql数据库连接过程的中的小记录

最近开始弄这个Rails,费了一些心里才完成Rails的环境搭建,OK,现在开始按照Rails Guides编写第一个测试的小程序,Blog程序。

开始在终端输入一下命令:

rails new blog -d mysql

很无奈的报错了,看到命令行输出一串串的字符,在bundle install的时候输出提示,有一个https什么的,我一猜想,估计是伟大的党国有墙了,没办法进入blog目录,修改 Gemfile。将source修改为淘宝的gem镜像,再次手动运行

bundle install

这次成功了,运行的很流畅,没有任何问题。检查一下自己的数据库已经启动没问题,好的。现在修改 ./config/database.yml文件,将数据库的连接文件的帐号,密码设置正确。(我的root账户应为想到的开发环境就设置的比较简单123,这就出现了我在上一边环境安装过程中提醒大家最好使用字母加数字或者字母的原因)。命令行执行

$ rake db:create -v
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
(See full trace by running task with --trace)

如上的问题让我首先很是无奈,Could not find a JavaScript runtime---这是为什么啦,我才开始就说需要javascript了,太神奇了。谷哥了一把(度娘再次失望的没有找到解决办法),需要在Gemfi中添加

gem 'therubyracer'

添加成功后再次运行 bundle install命令,发现gem会帮你自动安装一个javascript的东东。再次运行

$ rake db:create -v
rake aborted!
can't convert Fixnum into String
Tasks: TOP => db:create
(See full trace by running task with --trace)

发现命令报错是不是不一样了。但是还是悲催的报错了。但是看看报错提示can't convert Fixnum into String ,这是为什么了啦。想了好久好久,在看看了好久的./config/database.yml文件终于突然想到是密码的问题了,应为我的密码设置的是123。在这两天看书web敏捷开发之道的时候看到关于YAML的介绍的时候提及了一下。我感觉到可能是YAML在阅读我的database的配置文件的时候默认的将123作为了一个num类型的数据,修改./config/database.yml将密码123打上双引号,强制的将num转换成为字符串,在再次执行rake db:create -v就没有任何问题了。