0

我这里有两个模型,课程和学习单元,学习单元包含课程的内容。

这是两个模型:

class Studyunit < ActiveRecord::Base
  attr_accessible :name
  has_and_belongs_to_many :courses

class Course < ActiveRecord::Base
  attr_accessible :name
  has_and_belongs_to_many :studyunits

问题是向课程添加学习单元似乎会更新课程。studyunits 属性,但不是 studyunit.courses。rspec 代码的摘录:

before(:each) do
  course.studyunits << studyunit
  Studyunit.connection.clear_query_cache
 end

it "should be associated with a course" do
  course.studyunits.first.should_not eql(nil)
  studyunit.courses.first.should_not eql(nil)
end

第一个条件通过,第二个条件失败。如何解决这个问题?我需要在我的代码中访问双方。我尝试按照这个线程清除查询缓存,但它没有解决问题。

4

1 回答 1

0

您确定这不仅仅与缓存有关吗?我怀疑确实如此。试试这个代码:

it "should be associated with a course" do
  course.studyunits(true).first.should_not eql(nil)
  studyunit.courses(true).first.should_not eql(nil)
end
于 2012-09-13T06:06:19.720 回答