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) %>