`

rails中修改字段名要注意

阅读更多
今天把blog的body字段通过migration改名为content,然后rake db:migrate,再rake db:migrate RAILS_ENV=test。结果再次运行unit test的时候,居然报这样的错:
引用
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'body' in 'field list'

想了半天想不起来除了数据库里还有哪里定义了model的信息。结果跑到rubyonrails的guides上乱翻,看到这么一行:
引用
$ script/generate scaffold post title:string body:text
...
create  app/models/post.rb
create  test/unit/post_test.rb
create  test/fixtures/posts.yml
...

这才反应过来……估计fixtures里的信息不会同步更新。打开blog.yml一看,果然如此,于是把里面的body全改成content,再次运行测试,正常了。。
分享到:
评论

相关推荐

    What’s New In Rails 2.1

    在Rails 2.1中,ActiveRecord引入了一系列改进,其中最值得注意的是`sum`方法的新特性。 ##### `sum`方法表达式支持 现在可以在ActiveRecord的方法(如`sum`)中使用表达式进行计算,这为开发者提供了更大的灵活性...

    rails有用的命令

    在Ruby on Rails框架中,命令行工具是开发者日常工作中不可或缺的一部分。Rails命令允许我们快速地构建应用程序、管理数据库、生成代码以及执行各种自动化任务。以下是一些关键的Rails命令及其详细解释: 1. **创建...

    Agile Web Development with Rails中文版 3rd Edition

    本章节通过构建一个名为Depot的应用程序来进一步深化读者对Rails的理解。 **5.1 增量式开发** 介绍了增量式开发的方法,即通过一系列迭代逐步完善应用功能。 **5.2 Depot做些什么** 概述了Depot应用程序的功能...

    ruby on rails 实例代码

    在本实例代码中,我们将深入探讨如何利用Rails进行数据库操作,包括对数据的增加、删除、修改和查询,也就是常说的CRUD(Create, Read, Update, Delete)操作。 首先,Rails使用ActiveRecord作为其ORM(对象关系...

    angular_rails_csrf-源码.rar

    在Rails中,CSRF防护通常通过`protect_from_forgery`方法实现,它会生成一个名为`csrf_token`的隐藏字段,服务器端会验证这个令牌是否与session中的值匹配。而在Angular.js中,我们可以使用$http服务的`defaults....

    基于Rails2.2.2的自建的CRUD项目视频

    这在项目开始时用于创建`blogs`表,后续修改模型后也会用到,如添加或修改字段。 6. **测试(Testing)**:Rails鼓励TDD(测试驱动开发),所以你可能会发现一些测试文件,用于确保应用的功能正确无误。例如,`test...

    ruby on rails 2.1 what is new (CN)

    在Rails 2.1中,模型类现在内置了修改追踪功能。这意味着开发人员可以很容易地检测到模型对象的哪些属性发生了改变,这对于实现审计日志或者保存前的数据验证非常有用。例如: ```ruby class User before_save :...

    Rails应用程序中同时修改操作冲突问题的解决方案

    Rails应用程序中的操作冲突问题是指当多个用户或进程尝试同时修改同一数据记录时所遇到的问题。这种情况通常发生在Web应用程序中,当用户通过网页界面编辑数据时,有可能多个用户同时加载了同一记录的数据,接着各自...

    ruby on rails 3.1.0数据库查询方法汇总

    - 使用 `limit` 和 `offset` 时要注意,大范围的偏移量会导致性能下降,因此应尽量减少偏移量的使用。 - 在使用 `select` 时,仅选择必要的字段可以显著降低网络传输时间,从而提高应用程序的整体性能。 - **安全...

    ruby rails recipes

    本篇文档主要介绍了一本名为《Ruby on Rails Web Development Recipes》的书籍,该书由 Chad Fowler 编写,并由 The Pragmatic Bookshelf 出版。本书针对 Ruby on Rails 开发者提供了一系列实用的技术解决方案(即...

    简单介绍Ruby on Rails对PostgreSQL数组类型的支持

    在Rails中创建数组类型的字段,可以在迁移(migration)文件中通过`:array => true`选项来实现。例如,以下代码创建了一个名为`table_with_arrays`的表,其中包含两个整数数组列`int_array`和`int_array_length`,以及...

    rails-videogame-library:Rails项目组合

    9. **版本控制**:项目名为`rails-videogame-library-main`,通常表明项目托管在Git仓库的主分支上,这反映了版本控制的重要性,便于团队协作和代码历史追踪。 10. **RESTful API**:Rails支持创建RESTful API,...

    Ruby on Rails实现最基本的用户注册和登录功能的教程

    注意:`password_digest`字段用于存储加密后的密码,这个字段名是固定的,不能更改。 - 在用户模型中引入`has_secure_password`特性: ```ruby # app/models/user.rb class User has_secure_password end ``` - ...

    food-on-rails

    通过编写迁移文件,可以轻松地在数据库中添加、修改或删除表和字段。 6. **Scaffold**:Rails的scaffold生成器可以快速创建CRUD(创建、读取、更新、删除)操作的基础代码,是快速原型开发的好帮手。 7. **Rails ...

    基于sqlite的ror例子

    运行`rails db:migrate`命令执行迁移,这会根据迁移文件中的指令修改数据库结构。上述例子中,这会创建一个`users`表,包含`name`和`email`两个字段。 五、ActiveRecord操作 ActiveRecord提供了许多方便的方法来...

    Ruby入门例子

    2. **运行Rails命令**:在命令行输入 `rails railsDemo`(注意:railsDemo 是你要创建的应用名称)。 ```shell C:\>rails railsDemo ``` 这条命令将在当前目录下创建一个名为 `railsDemo` 的文件夹,并在其中...

    Ruby-Shift一个帮助您在MySQL数据库中运行模式迁移

    例如,你可以创建一个新文件,用`rails generate migration AddColumnNameToTableName column:type`命令,这里的`ColumnName`是你想添加的字段名,`type`是字段的数据类型,如`string`、`integer`或`boolean`。...

    Ruby-尝试搭建一个类似Emacs中文网的多人博客

    在开始之前,确保你的开发环境中已经安装了Ruby、RubyGems和Rails。如果尚未安装,可以使用以下命令进行安装: ```bash # 安装Ruby sudo apt-get install ruby-full # 安装RubyGems sudo apt-get install gem # ...

    ROR 文件的上传与下载

    在给定的示例中,使用MySQL数据库创建了一个名为`records`的表,其中包含两个关键字段:`name`和`person`。`name`字段用于存储上传文件的名称,而`person`字段则是一个`MEDIUMBLOB`类型,用于保存上传文件的二进制流...

Global site tag (gtag.js) - Google Analytics