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 に答える