Pewnie jest jakaś łatwiejsza metoda, ale ja kiedyś jak musiałem to na szybko zrobić, to dałem coś takiego:
[code]# gdzieś w config/initializers na przykład
module ActiveRecord
module Serialization
# Returns hash prepared to be converted to json
#
# Can take the same options as ActiveRecord::Base#to_json
def prepare_json(options = {})
if include_root_in_json
{ self.class.json_class_name => JsonSerializer.new(self, options).serializable_record }
else
JsonSerializer.new(self, options).serializable_record
end
end
end
end
module ActiveSupport
module JSON
class << self
def prepare_json(value, options = {})
seen = (options[:seen] ||= [])
raise CircularReferenceError, ‘object references itself’ if seen.include?(value)
seen << value
value.send(:prepare_json, options)
ensure
seen.pop
end
end
end
end
module Enumerable
def prepare_json(options = {})
self.map { |value| ActiveSupport::JSON.prepare_json(value, options) }
end
end[/code]
I teraz możesz zrobić na przykład:
render :json => {:tags => tags, :transactions => transactions}[/code]
Jak ktoś wie jak to lepiej zrobić to proszę o info, zapomniałem już o tym problemie i jestem ciekaw czy i jak można to inaczej zrobić.