【发布时间】:2015-08-21 01:41:39
【问题描述】:
我正在编写一些测试,但遇到了一些我想要理解的东西。
调用时下面有什么区别:
.update_attributes(:group_ids, [group1.id, group2.id])
对
.update_attributes(:groups, [group1, group2])
这两个有问题的模型:
group.rb
class Group
include Mongoid::Document
has_and_belongs_to_many :users, class_name: "Users", inverse_of: :groups
end
用户.rb
class User
include Mongoid::Document
has_and_belongs_to_many :groups, class_name: "Group", inverse_of: :users
end
有问题的测试代码:
g1 = create(:group)
u1 = create(:user, groups: [g1])
g1.update_attribute(:users, [u1])
# at this point all the associations look good
u1.update_attribute(:group_ids, [g1.id])
# associations looks good on both sides when i do u1.reload and g1.reload
u1.update_attribute(:groups, [g1])
# g1.reload, this is when g1.users is empty and u1 still has the association
希望我说得通,谢谢
【问题讨论】:
-
我不明白你的测试。将其拆分为两个单独的测试用例,一个通过,另一个失败。
标签: ruby-on-rails rspec mongoid