0

我不确定是否每次调用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_badgewherecurrent_brain实例化为:

def current_brain
  current_user.brain
end

如果是这样,创建它的实例变量然后引用该变量会有所帮助,还是我的 application_controller 已经实现了这一点?

4

1 回答 1

1

这会有所帮助

def current_brain
  @current_brain ||= current_user.brain
end
于 2013-07-15T20:20:11.873 回答