diff options
author | Jacques Crocker <railsjedi@gmail.com> | 2010-09-18 20:21:03 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-09-25 11:15:40 +0200 |
commit | ee5ef67c443407f616feef3a8cade8ba3a9d6ef0 (patch) | |
tree | 5a3adcaa9837d2638d88bd9ebbe915c98e15e2bf /activeresource/test/fixtures/address.rb | |
parent | 1b7d30bfc925562cffff10db2a0388770e9bc06c (diff) | |
download | rails-ee5ef67c443407f616feef3a8cade8ba3a9d6ef0.tar.gz rails-ee5ef67c443407f616feef3a8cade8ba3a9d6ef0.tar.bz2 rails-ee5ef67c443407f616feef3a8cade8ba3a9d6ef0.zip |
Allow ActiveResource to work with non-generated ids [#5660 state:resolved]
This commit updates new? so that it knows whether or not the record was actually new or not, and doesn't rely solely on the presence of id. This enables the ability to set a custom primary_key that is not autogenerated by the server.
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activeresource/test/fixtures/address.rb')
-rw-r--r-- | activeresource/test/fixtures/address.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/activeresource/test/fixtures/address.rb b/activeresource/test/fixtures/address.rb new file mode 100644 index 0000000000..fe921e1595 --- /dev/null +++ b/activeresource/test/fixtures/address.rb @@ -0,0 +1,19 @@ +# turns everyting into the same object +class AddressXMLFormatter + include ActiveResource::Formats::XmlFormat + + def decode(xml) + data = ActiveResource::Formats::XmlFormat.decode(xml) + # process address fields + data.each do |address| + address['city_state'] = "#{address['city']}, #{address['state']}" + end + data + end + +end + +class AddressResource < ActiveResource::Base + self.element_name = "address" + self.format = AddressXMLFormatter.new +end
\ No newline at end of file |