原です。

|ごとけんです

|適用範囲によりますが、これだと先頭の _ は置換できないので、
|次のようにした方が安全かも知れません。
|
|a.gsub(/(^|[^\\])_/, '\1 ')

これが正解と思いますが、もしかして \ で \ をエスケープ可能に
してたりしません? a = "\\\\_" の場合とか。だとすると実直に

  a.gsub(/\\?[\\_]/) { case $& when "_" then " " else $& end }

とかしたほうがいいかもしれません。