0

ここには、コースとスタディユニットの 2 つのモデルがあり、スタディユニットにはコースのコンテンツがあります。

以下に 2 つのモデルを示します。

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

最初の条件はパスし、2 番目の条件は失敗します。これを解決するには?コードの両側にアクセスする必要があります。このスレッドに従ってクエリキャッシュをクリアしようとしましたが、問題は解決しませんでした。

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 に答える