This project is archived and is in readonly mode.
Changeset [f81c6bc0404ba2a03eed0ec6c08bbac45661305f] by snusnu
February 21st, 2010 @ 04:17 AM
AMo #key is now #to_key and CI is probably happy
Obviously #key is a too common name to be included
in the AMo interface, #to_key fits better and also
relates nicely to #to_param. Thx wycats, koz and
josevalim for the suggestion.
AR's #to_key implementation now takes customized
primary keys into account and there's a testcase
for that too.
The #to_param AMo lint makes no assumptions on how
the method behaves in the presence of composite
primary keys. It leaves the decision wether to
provide a default, or to raise and thus signal to
the user that implementing this method will need
his special attention, up to the implementers. All
AMo cares about is that #to_param is implemented
and returns nil in case of a new_record?.
The default CompliantObject used in lint_test
provides a naive default implementation that just
joins all key attributes with '-'.
The #to_key default implementation in lint_test's
CompliantObject now returns [id] instead of [1].
This was previously causing the (wrong) tests I
added for AR's #to_key implementation to pass. The
to_key tests added with this patch should be
better.
The CI failure was caused by my lack of knowledge
about the test:isolated task. The tests for the
record_identifier code in action_controller are
using fake non AR models and I forgot to stub the
to_key method over there. This issue didn't come
up when running the test task, only test:isolated
revealed it. This patch fixes that.
All tests pass isolated or not, well, apart from
one previously unpended test in action_controller
that is unrelated to my patch.
http://github.com/rails/rails/commit/f81c6bc0404ba2a03eed0ec6c08bba...
Committed by snusnu
- M actionpack/lib/action_controller/record_identifier.rb
- M actionpack/test/controller/record_identifier_test.rb
- M actionpack/test/lib/controller/fake_models.rb
- M actionpack/test/template/prototype_helper_test.rb
- M activemodel/lib/active_model/lint.rb
- M activemodel/test/cases/lint_test.rb
- M activerecord/lib/active_record/attribute_methods/primary_key.rb
- M activerecord/test/cases/pk_test.rb
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>