所以我在迁移中加载了一些数据,例如在创建用户表时创建默认用户,并在创建 foos 表时创建某些用户角色(如 foo_admin)。
问题是黄瓜不喜欢这样,因为它会加载模式。
我可以让黄瓜只运行迁移,还是有更好的做法来做这种事情?机械师被用作工厂(没有固定装置!)
所以我在迁移中加载了一些数据,例如在创建用户表时创建默认用户,并在创建 foos 表时创建某些用户角色(如 foo_admin)。
问题是黄瓜不喜欢这样,因为它会加载模式。
我可以让黄瓜只运行迁移,还是有更好的做法来做这种事情?机械师被用作工厂(没有固定装置!)
不要使用迁移来加载数据。这被广泛认为是一种不好的做法,因为在构建 schema.rb 时不会保留数据加载。
从 rake 任务或其他可以挂钩到 env.rb 文件的 begin blog 的方法加载数据
begin do
Role.create :name=>"admin"
`rake RAILS_ENV="test" db:load_data_for_testing `
end
或类似的东西。
我遇到了类似的问题,并将其追溯到 rake 中的依赖项。我的解决方案是在没有 rake 的情况下直接运行黄瓜脚本,但这可能需要在 Rails 中进行一些配置(使用 Merb 可以解决问题)。另一个解决方案是覆盖 rake 任务,它依赖于 db:migrate 而不是 db:load_schema。
注意。我对最新版本的 rails 几乎没有经验,bin/cucumber 脚本或 env.rb 文件中也可能有加载模式文件的内容。