我不确定是否每次调用current_brain.current_vocab_badge
,都会单独调用数据库。
如果我有这个:
max_prog = (current_brain.current_vocab_badge.topic.words.count * 2)
comp_prog = current_brain.current_vocab_badge.questions.where('style != ?', 'VisualPrereq').select{|q| q.weakness.blank? }.size
{ totes_left: remaining_prog, totes_so_far: comp_prog, cur_badge: current_brain.current_vocab_badge.name }
是否会对数据库进行 3 次单独调用,以便在我的 application_controller 中将current_brain.current_vocab_badge
wherecurrent_brain
实例化为:
def current_brain
current_user.brain
end
如果是这样,创建它的实例变量然后引用该变量会有所帮助,还是我的 application_controller 已经实现了这一点?