基本信息:
- Ruby 2.1.6
- Rails 4.2.3
- MySQL 5.5
- Ruby on Rails工程名:blog2
基本描述:
今天参考《Ruby on Rails Web开发学习实录》,使用Rails的代码生成器scaffold完善工程时出现了一系列的错误,如下:
- 首先,在数据库中建了一张articles表
- 接着执行“rails generate scaffold Article id:int name:varchar(45) title:varchar(45) content:text”
- 启动工程“rails server”,打开网址http://localhost:3000/,接着...
错误信息如下:
看到上面这个错误,我知道是没有做“数据库迁移”,于是我执行“rake db:migrate”,报了“rake aborted! SyntaxError:。。。”的错误,如下图:
见到上面这个错误我就醉了,网上找了很多类似的问题,没有能解决的,就知道问题出现在文件db/migrate/20150813012238_create_articles.rb中,如下图:
就看这个文件琢磨着字段“name”和“title”怎么会错了?后来才发现,这是Ruby文件,怎么能出现这种“varchar(45)”数据库的字段类型呢,于是改成了下面的文件:
接着执行“rake db:migrate rails_env=development”,然后就出现了下面的错误(rake aborted! StandardError:。。。):
基于上面这个错误,查了很多网上相关问题,也没弄出个所以然来,关键是,"int"被当做方法了。个人觉得,既然把“int”当方法,索性先给注释掉,结果如下:
接着继续执行“rake db:migrate rails_env=development”,看能报什么错误,还真有错误,如下:
错误提示数据库中已经存在articles表(我上来就在数据库中建了一张articles表,见“基本描述”)了。我把数据中的articles表给删了,继续执行“rake db:migrate rails_env=development”,于是有了下面满意的结果:
接着再来看数据库中都生成了什么表:
上面这个图说明自动建了两张表(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!”类似的错误信息。
相关推荐
GoOnRails: 一个Rails生成器用于生成Go代码并集成Go APIs至一个Rails app中
一个用Ruby on Rails搭建的图片分享的网站项目.完整源代码
bootstrap-generators, Bootstrap 生成器为 Rails 提供 Twitter Bootstrap 生成器 Bootstrap 生成器 bootstrap生成器为 Rails 4 ( 支持的Rails> = 3.1 ) 提供 Twitter Bootstrap 生成器。 Bootstrap 是 Twitter的...
swagger-docs, 为 Rails api生成 swagger ui json文件,使用简单的DSL Swagger::Docs使用api为 Rails 应用生成swagger的ui json文件。 你可以向控制器类添加 swagger DSL,然后运行一个rake任务来生成json文件。 ...
Ruby on Rails入门经典代码,非常适合新手学习使用
Ruby on Rails源代码
nifty-generators, 有用的Rails 生成器脚本集合 漂亮的生成器用于脚手架,布局文件,身份验证和更多的有用 Rails 生成器脚本的集合。设置 Rails 3将 gem 添加到你的。gem"nifty-generators", :group => :developm
集合了Grape的所有Rails生成器脚本。 入门 将此行添加到 Rails 应用程序的 Gemfile 中: gem 'grape-api-generator' 然后运行bundle命令来安装它。 安装gem之后,您可以运行install生成器以生成基本的MyApp API...
简单的CLI利用Docker生成和运行Rails的环境
使用Rails生成Golang代码或管理Go应用开发go-on-rails是Rails生成器,旨在: 帮助开发和集成一些用Golang编写的API到现有的Rails应用程序,以实现高性能使用您熟悉的Rails工具开发和管理Golang应用程序项目将不太...
《Rails之道》按照Rails的各个子系统进行组织编排,分别介绍了Rails的环境、初始过程、配置和日志记录,Rails的分配器、控制器、页面生成和路由,REST、资源和Rails,ActiveRecord的基础、关联、验证和高级技巧,...
注意:避免在项目中更改Beautiful-Scaffold版本(生成的代码之间不兼容)。 注意2:请注意为您的项目准备一个干净的git存储库,因为Beautiful-Scaffold会更改许多文件。 还原更改将更加容易。 信息: 演示: /安装 ...
Codematic (2.0版)是一款为 C# 数据库程序员设计的自动代码生成器,Codematic 生成的代码基于基于面向对象的思想和三层架构设计,结合了Petshop中经典的思想和设计模式,融入了工厂模式,反射机制等等一些思想。...
NULL 博文链接:https://eric-gao.iteye.com/blog/1036227
如果你用过Ruby on Rails的的代码生成器的话,那么懒惰也同样适用于这样的场景,它为开发者提供一系列健壮的工具,程序库和工作流,帮助他们快速组装出漂亮,引人注目的Web应用。其他语言版本: 特性生成一个独立可...
Rbuy for Rails源代码
您有机会使用RubyMine快速生成器吗? 一直希望Sublime Text包含此功能吗? 现在你明白了! 特征: 快速生成器 快速耙任务 快速Capistrano任务 快速捆绑包安装 快速转到视图(当前仅支持.haml) 如何使用 ? 只需...
这几天一直在学习使用RoR(Ruby on Rails),想建立一个功能全面一点的LBS(Location Based Service)网站。但是对于我这个RoR的初学者(仅有几天时间)来说,毕竟太复杂了。因此本文试图简化原来的设计思路,抛弃一切...
rails向导
这将为您的项目创建一个新文件夹,请确保在所有文件中搜索Rails6Scaffold和rails6_scaffold ,因为在某些地方您需要手动更改名称。 这是找到的文件列表,在运行“重命名” gem后需要手动更新: app/views/layouts...