salsify/goldiloader

Exception when association method overridden

jturkel opened this issue · 0 comments

If an association method is overridden to return non-model objects then Goldiloader blows up:

class Blog < ActiveRecord::Base
  has_many :posts

  def posts
    'boom'
  end
end

Leads to the following exception:

NoMethodError: undefined method `auto_include_context=' for "boom":String
    /Users/jturkel/dev/goldiloader/lib/goldiloader/auto_include_context.rb:11:in `block in register_models'
    /Users/jturkel/dev/goldiloader/lib/goldiloader/auto_include_context.rb:10:in `each'
    /Users/jturkel/dev/goldiloader/lib/goldiloader/auto_include_context.rb:10:in `register_models'
    /Users/jturkel/dev/goldiloader/lib/goldiloader/association_loader.rb:23:in `load'
    /Users/jturkel/dev/goldiloader/lib/goldiloader/active_record_patches.rb:73:in `load_with_auto_include'
    /Users/jturkel/dev/goldiloader/lib/goldiloader/active_record_patches.rb:88:in `find_target_with_auto_include'