Activerecord 轨道安装式发动机内部测试夹具中的关联

Activerecord 轨道安装式发动机内部测试夹具中的关联,activerecord,ruby-on-rails-3.1,Activerecord,Ruby On Rails 3.1,我在对新安装的可安装发动机进行单元测试时遇到了一个问题 我有两个基本模型: module Ads class Category < ActiveRecord::Base set_table_name :categories has_many :ads end end module Ads class Ad < ActiveRecord::Base set_table_name :ads belongs_to :category end

我在对新安装的可安装发动机进行单元测试时遇到了一个问题

我有两个基本模型:

module Ads
  class Category < ActiveRecord::Base
    set_table_name :categories
    has_many :ads
  end
end

module Ads
  class Ad < ActiveRecord::Base
    set_table_name :ads
    belongs_to :category
  end
end
在填充测试数据库的过程中会出现错误:

ActiveRecord::StatementInvalid: PGError: ERROR:  column "category" of relation "ads" does not exist
LINE 1: INSERT INTO "ads" ("title", "category") VALUES ('Foo', 'cars...
似乎“关联”被忽略了。 同样的方法在一个独立的rails应用程序中也可以很好地工作。 我的问题是:我做错了什么? 附带的问题是,是否有一个更干净的解决方案来改变路径


Rails:3.1.3

我也遇到了同样的问题,但使用的是Rails 3.0引擎。我无法正确地修复它,但作为一项工作,我做到了这一点

而不是:

category: cars
做:

category\u id:
这是可行的,因为ID实际上是标签的散列。而Fixtures.identification就是散列的作用

rake app:test:units
ActiveRecord::StatementInvalid: PGError: ERROR:  column "category" of relation "ads" does not exist
LINE 1: INSERT INTO "ads" ("title", "category") VALUES ('Foo', 'cars...
category: cars
category_id: <%= Fixtures.identify(:cars) %>