這裏是我的Rabl的觀點:Rabl的緩存與嵌套對象
學生/ 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
student.rb:
class Student < ActiveRecord::Base
belongs_to :school, :touch => true
end
school.rb
class School < ActiveRecord::Base
has_many :students
end
所以,當我更新的學生,如預期高速緩存被無效。問題是,當我更新一所學校時,學生們沒有得到更新的學校屬性。當我更新學校模型時,我會認爲部分中的cache @school會失效,但似乎並非如此。
編輯:添加觸摸到學生使更新失效學校。
如果學生更新,那肯定有效。但是當學校更新時,它反而無用。基本上,我正在尋找一種方法來做2個緩存讀取,一個是針對學生的,另一個針對每個學校。 – ankimal 2013-03-11 14:26:06