`post.text_overlay` will either always be nil or always be "" here, depending on what you've set up as the default value for it.  If you want a default value, do it in your migration (`:default => ""`) or in your model, don't do it in the controller.  This will be especially confusing if you have multiple code paths which create posts, like some posts were created on the console.