Skip to content

Commit 78f3e39

Browse files
committed
Handle the presence of sti_name on class or base class
1 parent 052693d commit 78f3e39

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

lib/polymorphic_integer_type/activerecord_5_0_0/association_query_handler_extension.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,20 @@ def call(attribute, value)
1414

1515
protected
1616

17-
def polymorphic_value_for(value)
18-
table = value.associated_table
17+
def polymorphic_value_for(query_value)
18+
table = query_value.associated_table
1919
association = table.send(:association)
2020
klass = association.active_record
2121
name = association.name
2222

2323
if klass.respond_to?("#{name}_type_mapping")
24-
klass.send("#{name}_type_mapping").key(value.base_class.sti_name)
24+
type_mapping = klass.send("#{name}_type_mapping")
25+
26+
type_mapping.key(query_value.value.class.sti_name) ||
27+
type_mapping.key(query_value.base_class.to_s) ||
28+
type_mapping.key(query_value.base_class.sti_name)
2529
else
26-
value.base_class.name
30+
query_value.base_class.name
2731
end
2832
end
2933

0 commit comments

Comments
 (0)