diff --git a/lib/simple_form/form_builder.rb b/lib/simple_form/form_builder.rb index 20a99a4b..9062c49d 100644 --- a/lib/simple_form/form_builder.rb +++ b/lib/simple_form/form_builder.rb @@ -599,7 +599,11 @@ def file_method?(attribute_name) def find_attribute_column(attribute_name) if @object.respond_to?(:type_for_attribute) && @object.has_attribute?(attribute_name) - @object.type_for_attribute(attribute_name.to_s) + detected_type = @object.type_for_attribute(attribute_name.to_s) + + # Some attributes like ActiveRecord::Encryption::EncryptedAttribute are detected + # as different type, in that case we need to use the original type + detected_type.respond_to?(:cast_type) ? detected_type.cast_type : detected_type elsif @object.respond_to?(:column_for_attribute) && @object.has_attribute?(attribute_name) @object.column_for_attribute(attribute_name) end