2012-07-29 86 views
4

我在rails中建立了一对多关联,但是由于外键未正确设置,我的测试仍然失败。我想知道是否有人有任何建议。Rails:由于外键验证导致一对多关联失败

我有两个模型 - 旋转和用户。我想要一个rota被用户“创造”。用户可以创建多个rota。

测试失败

*在rota_spec:*

it {should belong_to :creator} 
Expected Rota to have a belongs_to association called creator (Rota does not have a creator_id foreign key.) 

*在user_spec:*

it {should have_many :created_rotas} 
Expected User to have a has_many association called created_rotas (Rota does not have a creator_id foreign key.) 

Rota.rb

belongs_to :creator, :class_name => "User" 

User.rb

has_many :created_rotas, :class_name => "Rota", :foreign_key => "creator_id" 

迁移

class AddCreatorToRotas < ActiveRecord::Migration 
    def change 
    add_column :rotas, :creator_id, :string 
    end 
end 
+1

你在测试迁移数据库? – Dougui 2012-07-29 00:46:44

+0

啊 - 不!该死的!这可能就是它! – Karan 2012-07-29 00:47:18

+0

我只迁移了主数据库 - rake db:migrate。如果您将其作为答案发布,我会将其标记为已接受:) – Karan 2012-07-29 00:48:23

回答

7

您必须运行

rake db:test:prepare