加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用嵌套对象进行Rabl缓存

发布时间:2020-12-17 02:15:32 所属栏目:百科 来源:网络整理
导读:以下是我的观点: 学生/ show.json.rabl object @studentcache @studentattribute :name,:gender,:agenode :school do |student| partial("shared/school",:object = student.school)end 共享/ _school.json.rabl object @schoolcache @schoolattributes :id
以下是我的观点:

学生/ 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

因此,当我更新学生时,缓存会按预期失效.问题是,当我更新学校时,学生不会获得更新的学校属性.当我更新学校模型时,我原以为部分缓存@school会失效,但事实并非如此.

编辑:为学生添加了触摸功能,以便在更新时使学校无效.

解决方法

为了帮助别人,我现在正在做的事情是:

我将学生秀视图分成:

学生/ show.json.rabl:

extends "students/min_show"

node :school do |student|
  partial("shared/school",:object => student.school)
end

和学生/ min_show.json

object @student
cache @student
attribute :name,:age

这样我仍然可以读取学生的缓存,但学校总是从模板中呈现并单独缓存.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读