ruby on rails - Preloading Associations with conditions lambda failing -
i getting nomethoderror when trying preload has_many association includes conditions lambda.
here modelsclass event < activerecord::base belongs_to :user end class calendarday < activerecord::base belongs_to :user has_many :events, ->(_day) { where( user_id: _day.user_id, deleted_at: nil ) }, autosave: false, foreign_key: :date, primary_key: :date, end load calendardays , seek , preload events. days = calendarday.all.to_a loader = activerecord::associations::preloader.new loader.preload(days, :events) #nomethoderror: undefined method `user_id' nil:nilclass it appears pre-loader works on relationships without conditions lambda.
anyone have ideas? bug in activerecord::associations::preloader class?
if want preload association can utilize conditions, won't passed parent record (_day in case) since different each of day objects.
activerecord needs come 1 query load of events , doesn't know how when status changes each parent object ( same true when include association if memory correct)
ruby-on-rails ruby-on-rails-4
No comments:
Post a Comment