ここには、コースとスタディユニットの 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 番目の条件は失敗します。これを解決するには?コードの両側にアクセスする必要があります。このスレッドに従ってクエリキャッシュをクリアしようとしましたが、問題は解決しませんでした。