ここに私のラブルの見解があります:
学生/show.json.rabl
object @student
cache @student
attribute :name, :gender, :age
node :school do |student|
partial("shared/school", :object => student.school)
end
共有/_school.json.rabl
object @school
cache @school
attributes :id, :name
生徒.rb:
class Student < ActiveRecord::Base
belongs_to :school, :touch => true
end
学校.rb
class School < ActiveRecord::Base
has_many :students
end
そのため、学生を更新すると、期待どおりにキャッシュが無効になります。問題は、学校を更新すると、学生が更新された学校の属性を取得できないことです。学校モデルを更新すると、パーシャルのキャッシュ @school が無効になると思っていましたが、そうではないようです。
編集:更新時に学校を無効にするために学生にタッチを追加しました。