私はこのようなものを持っています:
class Suite < ActiveRecord::Base
has_many :tests
end
class Test < ActiveRecord::Base
belongs_to :suite
end
また、フラグメント キャッシュを行うために cache_digests gem を使用しています。Suite オブジェクトを更新すると、子テストのキャッシュの有効期限が切れます。関連付けに を入れようとしましたtouch: true
が、has_many
成功しませんでした。
どうやってやるの?
前もって感謝します
編集
私は次のようにキャッシュを行っていました:
<% cache test do %>
<tr>
etc...
<% cache test.suite do %>
etc..
<% end %>
</tr>
<% end %>
しかし、スイートを編集するとき、それらのテストは変更されないため、うまくいきません。そこで、キャッシュ宣言を次のように変更しました。
<% cache [test, test.suite] do %>
etc..
<% end %>
そして、それは期待どおりに機能しました。
テストまたはスイートを編集すると、そのうちの 1 つが変更されるため、フラグメントが期限切れになり、期待どおりに新しいバージョンが取得されました。
助けてくれた@taryn-eastに感謝します。