mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #27865 from composerinteralia/collection-ids-setter-bug
Fix collection_singular_ids= bug
This commit is contained in:
commit
3497f04d36
3 changed files with 17 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
* Fix `association_primary_key_type` for reflections with symbol primary key
|
||||||
|
|
||||||
|
Fixes #27864
|
||||||
|
|
||||||
|
*Daniel Colson*
|
||||||
|
|
||||||
* Virtual/generated column support for MySQL 5.7.5+ and MariaDB 5.2.0+.
|
* Virtual/generated column support for MySQL 5.7.5+ and MariaDB 5.2.0+.
|
||||||
|
|
||||||
MySQL generated columns: https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html
|
MySQL generated columns: https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html
|
||||||
|
|
|
@ -421,7 +421,7 @@ module ActiveRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def association_primary_key_type
|
def association_primary_key_type
|
||||||
klass.type_for_attribute(association_primary_key)
|
klass.type_for_attribute(association_primary_key.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
def active_record_primary_key
|
def active_record_primary_key
|
||||||
|
@ -835,7 +835,7 @@ module ActiveRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def association_primary_key_type
|
def association_primary_key_type
|
||||||
klass.type_for_attribute(association_primary_key)
|
klass.type_for_attribute(association_primary_key.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Gets an array of possible <tt>:through</tt> source reflection names in both singular and plural form.
|
# Gets an array of possible <tt>:through</tt> source reflection names in both singular and plural form.
|
||||||
|
|
|
@ -335,6 +335,15 @@ class ReflectionTest < ActiveRecord::TestCase
|
||||||
assert_equal "custom_primary_key", Author.reflect_on_association(:tags_with_primary_key).association_primary_key.to_s # nested
|
assert_equal "custom_primary_key", Author.reflect_on_association(:tags_with_primary_key).association_primary_key.to_s # nested
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_association_primary_key_type
|
||||||
|
# Normal Association
|
||||||
|
assert_equal :integer, Author.reflect_on_association(:posts).association_primary_key_type.type
|
||||||
|
assert_equal :string, Author.reflect_on_association(:essay).association_primary_key_type.type
|
||||||
|
|
||||||
|
# Through Association
|
||||||
|
assert_equal :string, Author.reflect_on_association(:essay_category).association_primary_key_type.type
|
||||||
|
end
|
||||||
|
|
||||||
def test_association_primary_key_raises_when_missing_primary_key
|
def test_association_primary_key_raises_when_missing_primary_key
|
||||||
reflection = ActiveRecord::Reflection.create(:has_many, :edge, nil, {}, Author)
|
reflection = ActiveRecord::Reflection.create(:has_many, :edge, nil, {}, Author)
|
||||||
assert_raises(ActiveRecord::UnknownPrimaryKey) { reflection.association_primary_key }
|
assert_raises(ActiveRecord::UnknownPrimaryKey) { reflection.association_primary_key }
|
||||||
|
|
Loading…
Reference in a new issue