after_initializeが先に実行されることにより、joinsやincludesを使ったn+1問題が解消されません。
ruby 2.2.1p85
rails 4.2.1
以下のようなmodel構成で実装しております。
class Student after_initialize :set_profile has_one :student_profile, dependent: :destroy def set_profile self.student_profile ||= StudentProfile.new end end class StudentProfile belong_to :student end
その上で、n+1問題を解決したく以下のようにすると、先にafter_initializeが発生してしまい、n+1問題が解決しませんでした。
Student.joins(:student_profile)
もしくは
Student.includes(:student_profile)
after_initializeの処理はいじりたくなく、それ以外の方法でn+1問題を解決する方法はありますでしょうか?
宜しくお願いします。