0

使用 Rails 3.2。我有以下代码:

# photo.rb
class Photo < ActiveRecord::Base
  after_create :associate_current_user

  private

  def associate_current_user
    current_user = UserSession.find.user
    self.user_id = current_user.id
  end
end

在创建新记录之前,它会搜索current_user. 如果一次只有 1 条新记录,这没关系。但是如果要创建 100 条记录,它会搜索相同的current_user100 次。肯定有性能问题。

有没有办法可以缓存对象以进行类似操作,或者有什么建议?

谢谢。

4

1 回答 1

0

你可以做记忆,如下

class Photo < ActiveRecord::Base
  extend ActiveSupport::Memoizable
  after_create :associate_current_user

  private

  def associate_current_user
    current_user = UserSession.find.user
    self.user_id = current_user.id
  end
  associate_current_user
end
于 2012-11-28T18:45:47.487 回答