黄瓜规范无法查看最新迁移添加的列

时间:2012-03-16 21:17:16

标签: ruby-on-rails activerecord cucumber

我有一个试图填充对象的黄瓜步骤,包括刚刚通过迁移添加的新列。该列名为is_active,错误为:

      unknown attribute: is_active (ActiveRecord::UnknownAttributeError)

由于这一行而引发:

    city = City.find_or_create_by_name_and_state(:name => attributes['City'], :state => attributes['State'], :icao_code => attributes['ICAO'], :display_order => attributes['Order'], :is_active => attributes['Active'], :current_temperature => attributes['Current'])

奇怪的是,今天早些时候,我添加了列display_order,它工作正常。

如果我从步骤中删除:is_active分配并在城市分配后添加“puts city.attributes”,则is_active在属性中列出。但是如果我从rails控制台执行“City.new.attributes”,那么is_active属性就是

看起来黄瓜测试没有在适当的环境中执行,尽管它 能够看到最近的display_order属性,该属性仅在开发环境中定义,最近的is_active也是如此属性。

任何想法如何让黄瓜看到属性?

谢谢,

菲尔

1 个答案:

答案 0 :(得分:2)

rake db:migrate
rake db:test:prepare

测试环境不使用开发中使用的相同数据库。您必须运行命令rake db:test:准备在每次迁移后重新创建它,这实际上会更改数据库结构。

该命令只是根据schema.rb文件(或structure.sql,它取决于项目的配置)创建测试数据库,这些文件是在您运行迁移时创建/更新的。

Check the info from the rails guides