Hi Folks,
I ran into the same problem. Here is my fix, which solved the problem
(I've added it to my environment.rb):
module ActiveRecord
module Serialization
class Serializer
def add_includes_with_nested_include(&block)
if include_associations = options.delete(:include)
base_only_or_except = { :except => options[:except],
:only => options[:only] }
include_has_options = include_associations.is_a?(Hash)
associations = include_has_options ?
include_associations.keys : Array(include_associations)
for association in associations
association_has_options = association.is_a?(Hash)
if association_has_options
macro_association = association.keys.first
additional_association_options = association
[macro_association]
else
additional_association_options = {}
macro_association = association
end
macro = @record.class.reflect_on_association
(macro_association).macro
records = case macro
when :has_many, :has_and_belongs_to_many
@record.send(macro_association).to_a
when :has_one, :belongs_to
@record.send(macro_association)
end
unless records.nil?
association_options = include_has_options ?
include_associations[macro_association] : base_only_or_except
opts = options.merge(association_options).merge
(additional_association_options)
yield(macro_association, records, opts)
end
end
options[:include] = include_associations
end
end
alias_method_chain :add_includes, :nested_include
end
end
end
If someone wants to commit this to github, more power to you!
scho
On 21 Jan., 04:47, RubyNewbie <[email protected]> wrote:
> The error description above was slightly truncated.
> The full error is this: You have a nil object when you didn't expect
> it! The error occurred while evaluating nil.macro
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---