如何保存对数据库的命中

时间:2013-07-15 20:07:15

标签: ruby-on-rails

我不确定每次拨打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 }

是否会对current_brain.current_vocab_badge的数据库进行3次单独调用,其中current_brain在我的application_controller中实例化为:

def current_brain
  current_user.brain
end

如果是这样有助于创建它的实例变量然后引用该变量,或者我的application_controller已经实现了吗?

1 个答案:

答案 0 :(得分:1)

这会有所帮助

def current_brain
  @current_brain ||= current_user.brain
end