Oui, ce morceau de code est tout a fait correct !
Cet exemple utilise un percent literal de type String avec % comme délimiteur.

La liste des percent literal est la suivante :
%,%Q,%q(String)%s(Symbol)%r(Regexp)%x(Backtick => commande Shell)%W,%w(tableau de String)%I,%i(tableau de Symbol)
Le délimiteur est le caractère de votre choix (presque…). Les plus intéressants sont les tableaux de String et Symbol. La différence entre minuscule/majuscule est la réalisation ou non de l’interpolation.

Les caractères blancs ne sont pas pris en compte ("\n" compris). Pour en inclure il faut l’échapper avec un "\".

Petite question, le code suivant produit-il une erreur ?

Le lien vers la documentation Ruby des percent literal.