使用Rails代码生成器scaffold出现的一系列问题

阅读更多

基本信息:

  • Ruby 2.1.6
  • Rails 4.2.3
  • MySQL 5.5
  • Ruby on Rails工程名:blog2

基本描述:

        今天参考《Ruby on Rails Web开发学习实录》,使用Rails的代码生成器scaffold完善工程时出现了一系列的错误,如下:

  1. 首先,在数据库中建了一张articles表
  2. 接着执行“rails generate scaffold Article id:int name:varchar(45) title:varchar(45) content:text”
  3. 启动工程“rails server”,打开网址http://localhost:3000/,接着...

错误信息如下:
使用Rails代码生成器scaffold出现的一系列问题_第1张图片
 看到上面这个错误,我知道是没有做“数据库迁移”,于是我执行“rake db:migrate”,报了“rake aborted! SyntaxError:。。。”的错误,如下图:


使用Rails代码生成器scaffold出现的一系列问题_第2张图片
 见到上面这个错误我就醉了,网上找了很多类似的问题,没有能解决的,就知道问题出现在文件db/migrate/20150813012238_create_articles.rb中,如下图:


使用Rails代码生成器scaffold出现的一系列问题_第3张图片
 就看这个文件琢磨着字段“name”和“title”怎么会错了?后来才发现,这是Ruby文件,怎么能出现这种“varchar(45)”数据库的字段类型呢,于是改成了下面的文件:


使用Rails代码生成器scaffold出现的一系列问题_第4张图片
 接着执行“rake db:migrate rails_env=development”,然后就出现了下面的错误(rake aborted! StandardError:。。。):


使用Rails代码生成器scaffold出现的一系列问题_第5张图片
基于上面这个错误,查了很多网上相关问题,也没弄出个所以然来,关键是,"int"被当做方法了。个人觉得,既然把“int”当方法,索性先给注释掉,结果如下:

 

使用Rails代码生成器scaffold出现的一系列问题_第6张图片
 接着继续执行“rake db:migrate rails_env=development”,看能报什么错误,还真有错误,如下:

 

使用Rails代码生成器scaffold出现的一系列问题_第7张图片
错误提示数据库中已经存在articles表(我上来就在数据库中建了一张articles表,见“基本描述”)了。我把数据中的articles表给删了,继续执行“rake db:migrate rails_env=development”,于是有了下面满意的结果:

 
使用Rails代码生成器scaffold出现的一系列问题_第8张图片


 接着再来看数据库中都生成了什么表:


使用Rails代码生成器scaffold出现的一系列问题_第9张图片
 上面这个图说明自动建了两张表(articles和schema_migrations),为啥会多出来schema_migrations这张表,我也不懂,以后会找到这个答案的。另外,articles表多出了两个字段(created_at和updated_at),查阅了“Rails入门”网页,知道了运行迁移(“rake db:migrate”)时还会创建两个时间戳字段,用来跟踪记录的创建时间和更新时间。

 

补充说明:

  •  注意,中间有一步把"t.ind :id"注释掉,注释掉工程就能跑起来;
  • 在上面的诸多错误中,有好几个报“rake aborted!”的错误,在网上我也以此做过关键字检索,结果五花八门,倒是有个印象深刻的是在\config\database.yml数据库配置文件中,如果"password: admin"中的冒号后面没有空格,也会报“rake aborted!”类似的错误信息。
  • 使用Rails代码生成器scaffold出现的一系列问题_第10张图片
  • 大小: 30.5 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第11张图片
  • 大小: 14.1 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第12张图片
  • 大小: 73.3 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第13张图片
  • 大小: 63.7 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第14张图片
  • 大小: 60.8 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第15张图片
  • 大小: 72.4 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第16张图片
  • 大小: 77.4 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第17张图片
  • 大小: 54.4 KB
  • 使用Rails代码生成器scaffold出现的一系列问题_第18张图片
  • 大小: 20 KB
  • 查看图片附件

你可能感兴趣的:(Ruby,Rails)