Please sign in to comment.
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 . 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.
- Loading branch information...
Showing with 45 additions and 29 deletions.
- +2 −2 actionpack/lib/action_controller/record_identifier.rb
- +1 −0 actionpack/test/controller/record_identifier_test.rb
- +7 −7 actionpack/test/lib/controller/fake_models.rb
- +3 −3 actionpack/test/template/prototype_helper_test.rb
- +12 −6 activemodel/lib/active_model/lint.rb
- +5 −3 activemodel/test/cases/lint_test.rb
- +5 −3 activerecord/lib/active_record/attribute_methods/primary_key.rb
- +10 −5 activerecord/test/cases/pk_test.rb