diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-02-17 01:56:18 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2019-02-17 02:44:37 +0900 |
commit | 311f00116738df175c12cb36bebe79587f88e00b (patch) | |
tree | fea3f6a24513a1b5919ed9750ede3810822c79a3 /activerecord/test | |
parent | 263cfd5cad703a789d56c7e4bb269255048eeeef (diff) | |
download | rails-311f00116738df175c12cb36bebe79587f88e00b.tar.gz rails-311f00116738df175c12cb36bebe79587f88e00b.tar.bz2 rails-311f00116738df175c12cb36bebe79587f88e00b.zip |
Fix `order` with custom attributes
This follows up 0ee96d13de29680e148ccb8e5b68025f29fd091c.
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/relation/mutation_test.rb | 4 | ||||
-rw-r--r-- | activerecord/test/cases/relations_test.rb | 7 | ||||
-rw-r--r-- | activerecord/test/models/post.rb | 4 |
3 files changed, 13 insertions, 2 deletions
diff --git a/activerecord/test/cases/relation/mutation_test.rb b/activerecord/test/cases/relation/mutation_test.rb index f82ecd4449..96249b8d51 100644 --- a/activerecord/test/cases/relation/mutation_test.rb +++ b/activerecord/test/cases/relation/mutation_test.rb @@ -26,7 +26,7 @@ module ActiveRecord assert relation.order!(:name).equal?(relation) node = relation.order_values.first assert_predicate node, :ascending? - assert_equal :name, node.expr.name + assert_equal "name", node.expr.name assert_equal "posts", node.expr.relation.name end @@ -89,7 +89,7 @@ module ActiveRecord node = relation.order_values.first assert_predicate node, :ascending? - assert_equal :name, node.expr.name + assert_equal "name", node.expr.name assert_equal "posts", node.expr.relation.name end diff --git a/activerecord/test/cases/relations_test.rb b/activerecord/test/cases/relations_test.rb index 2ac81ba425..b1eba05933 100644 --- a/activerecord/test/cases/relations_test.rb +++ b/activerecord/test/cases/relations_test.rb @@ -1852,6 +1852,13 @@ class RelationTest < ActiveRecord::TestCase assert_equal contract.metadata, company.metadata end + test "joins with order by custom attribute" do + companies = Company.create!([{ name: "test1" }, { name: "test2" }]) + companies.each { |company| company.contracts.create! } + assert_equal companies, Company.joins(:contracts).order(:metadata) + assert_equal companies.reverse, Company.joins(:contracts).order(metadata: :desc) + end + test "delegations do not leak to other classes" do Topic.all.by_lifo assert Topic.all.class.method_defined?(:by_lifo) diff --git a/activerecord/test/models/post.rb b/activerecord/test/models/post.rb index 65d1fce66d..c6eb77dba4 100644 --- a/activerecord/test/models/post.rb +++ b/activerecord/test/models/post.rb @@ -328,6 +328,10 @@ class FakeKlass # noop end + def columns_hash + { "name" => nil } + end + def arel_table Post.arel_table end |