Rspec不通过has_and_belongs_to_many关联加载对象

时间:2012-08-29 15:00:04

标签: ruby-on-rails-3 activerecord rspec

我的模型中有这个:

class Instance < ActiveRecord::Base
   has_and_belongs_to_many :owners, :class_name => 'User'

和此:

 class User < ActiveRecord::Base
   has_many :instances

我有这个迁移:

 class CreateInstancesUsersJoinTable < ActiveRecord::Migration
     def up
       create_table :instances_users, :id=>false do |t|
         t.string :instance_id
         t.string :user_id
       end
     end

 def down
   drop_table :instances_users
  end
end

在实例控制器中我有:

   @instance.owners << owner

但测试表明所有者不是所有者阵列。但是当我说:

  p @instace.owners - before or after @instance.owners << owner
测试通过了。有谁知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

在用户模型中,您应该写

has_and_belongs_to_many  :instances

而不是

  has_many :instances