diff options
-rw-r--r-- | activeresource/lib/active_resource/base.rb | 5 | ||||
-rw-r--r-- | activeresource/test/base_test.rb | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/activeresource/lib/active_resource/base.rb b/activeresource/lib/active_resource/base.rb index 9fb347d2c3..b1a79731b9 100644 --- a/activeresource/lib/active_resource/base.rb +++ b/activeresource/lib/active_resource/base.rb @@ -550,6 +550,11 @@ module ActiveResource attributes[self.class.primary_key] = id end + # Allows ActiveResource objects to be used as parameters in ActionPack URL generation. + def to_param + id && id.to_s + end + # Test for equality. Resource are equal if and only if +other+ is the same object or # is an instance of the same class, is not +new?+, and has the same +id+. # diff --git a/activeresource/test/base_test.rb b/activeresource/test/base_test.rb index f97b08295a..89bc28deda 100644 --- a/activeresource/test/base_test.rb +++ b/activeresource/test/base_test.rb @@ -444,4 +444,11 @@ class BaseTest < Test::Unit::TestCase assert xml.include?('<name>Matz</name>') assert xml.include?('<id type="integer">1</id>') end + + def test_to_param_quacks_like_active_record + new_person = Person.new + assert_nil new_person.to_param + matz = Person.find(1) + assert_equal '1', matz.to_param + end end |