Ton message d'erreur ne parle pas pas d'un hash vide mais d'une valeur nil.
Le problème est donc l'appel à merge! sur options[:input_html] qui ne vaut rien puisque comme tu le dis, options vaut {}.
> {} == nil
=> false
Le problème est donc l'appel à merge! sur options[:input_html] qui ne vaut rien puisque comme tu le dis, options vaut {}.