У меня был тот же вопрос, и я написал небольшой пост об этом в моем блоге
Причина резюмирована здесь (я нашел это на форуме):
* _ путь для представлений, потому что ahrefs неявно связаны с текущим URL. Так что было бы напрасной тратой байтов повторять это снова и снова. В контроллере, однако, * _url необходим для redirect_to, потому что спецификация HTTP требует, чтобы заголовок Location: в перенаправлениях 3xx был полным URL.
Вот еще одно объяснение , в котором говорится, что это зависит от того, нужно ли нам использовать абсолютный URI при соединении с сайтом SSL с сайта, не являющегося SSL, и наоборот.
То, что я прочитал до сих пор, не предполагает, что один из них более безопасен, чем другой. Это действительно сводится к тому, что является «правильным» использованием.