(Moved from comments, as I found more and more to say about it):
I haven't used ActiveAdmin, but... Any reason why an empty string wouldn't be stored as an empty string but a NULL?
I think the empty-string-to-Nil conversion should never be automatic, since it violates least surprise. I'd appreciate a doc reference stating the opposite if I'm wrong...
As for solving it, I'd guess this might do the trick:
before_validation do
self.mytextfield = nil if self.mytextfield && self.mytextfield.empty?
end
Or, more systemic, this gem.
class MyModel < ActiveRecord::Base
nilify_blanks :only => [:mytextfield]
end