Rails 3: Comment puis-je valider pour permettre espaces vides ( “ ” ), mais pas nulle (NULL dans la base de données)

Dans un ActiveRecord (ou ActiveModel) je voudrais la spécification suivante pour passer

it { should allow_value("").for(:my_string) }
it { should_not allow_value(nil).for(:my_string) }

J'ai essayé

validates :my_string, {
  :length => { :in => 0..255 },
  :presence => true,
  :allow_blank => true,
  :allow_nil => false,
}

et aussi

validates :my_string, {
  :length => { :in => 0..255 },
  :allow_blank => true,
  :allow_nil => false,
}

Mais elle permet à la fois "" et de néant, ou aucune.

OriginalL'auteur Jarl | 2012-09-12