Saturday, 15 May 2010

ruby on rails - Preloading Associations with conditions lambda failing -



ruby on rails - Preloading Associations with conditions lambda failing -

i getting nomethoderror when trying preload has_many association includes conditions lambda.

here models class 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