From d0696d764189996422c3dea649c388b7685a10e5 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Sat, 2 Sep 2006 21:00:09 +0000 Subject: to_xml: the :methods option works on arrays of records. Closes #5845. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4909 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/test/base_test.rb | 6 ++++++ activerecord/test/fixtures/topic.rb | 7 ++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'activerecord/test') diff --git a/activerecord/test/base_test.rb b/activerecord/test/base_test.rb index b917e43278..18c5b50006 100755 --- a/activerecord/test/base_test.rb +++ b/activerecord/test/base_test.rb @@ -1340,6 +1340,12 @@ class BasicsTest < Test::Unit::TestCase xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :include => :replies) assert xml.include?(%()) end + + def test_array_to_xml_including_methods + xml = [ topics(:first), topics(:second) ].to_xml(:indent => 0, :skip_instruct => true, :methods => [ :topic_id ]) + assert xml.include?(%(#{topics(:first).topic_id})) + assert xml.include?(%(#{topics(:second).topic_id})) + end def test_array_to_xml_including_has_one_association xml = [ companies(:first_firm), companies(:rails_core) ].to_xml(:indent => 0, :skip_instruct => true, :include => :account) diff --git a/activerecord/test/fixtures/topic.rb b/activerecord/test/fixtures/topic.rb index 9b20f02cb0..d7cd52e33e 100755 --- a/activerecord/test/fixtures/topic.rb +++ b/activerecord/test/fixtures/topic.rb @@ -9,6 +9,11 @@ class Topic < ActiveRecord::Base Topic.find(parent_id) end + # trivial method for testing Array#to_xml with :methods + def topic_id + id + end + protected def default_written_on self.written_on = Time.now unless attribute_present?("written_on") @@ -17,4 +22,4 @@ class Topic < ActiveRecord::Base def destroy_children self.class.delete_all "parent_id = #{id}" end -end \ No newline at end of file +end -- cgit v1.2.3