Hola, yo trabajo con Rails y el underscore resumiendo se suele usar para por ejemplo:
* Green house => green_house
* Admin::Post => admin_post
* FooBar => foo_bar
Quizás algún programador te haya dicho que lo uses por comodidad, por ejemplo para poder usar nombres de variables, clases, campos, etc, como clases e ids. De hecho los 'helpers' de rails, los de los formularios por ejemplo, generan las clases e ids con 'underscore'*.
Yo personalmente en css/html suelo usar el guión alto. Pero si alguna vez por sencillez, para integrar ruby con html tengo que saltarme esta "norma" lo hago.
Lo que hay que tener claro es que Ruby y Rails tienen sus guías de estilo, que llegan hasta donde llegan y que yo sepa no se meten en como deben llamarse tus clases ni tus ids en html, este tendrá las suyas propias (o habrá corrientes de guias de estilo).
Pero lo más importante, sin duda es que entiendas por que ellos quieren que uses underscore para así saber cuando usarlo y cuando no, dándoles el voto de confianza, quizás no sea una simple mania o hayan interpretado mal la guia de estilo.
Si te dan alguna razón y sobre todo si alguna guía de rails lo dice, por favor comunícalo :)
Saludos.