Это может помочь понять, что делают именованные маршруты.
Определение Именованного маршрута создает обертку вокруг url_for для предоставления параметров, необходимых для созданного маршрута. Маршрутизация ресурсов создает много именованных маршрутов.
С учетом этого затраты на вызов именованного маршрута в отличие от url_for с необходимыми параметрами незначительны. Так что, если вы ссылаетесь на определенный ресурс, вам нужно использовать именованные маршруты. Их легче читать, печатать и поддерживать.
Однако не стоит сбрасывать со счетов url_for. Он имеет много творческих применений благодаря тому, как он обрабатывает отсутствующие опции. Это очень полезно, когда речь идет о сохранении представлений DRY, которые используются из нескольких вложенных источников. То есть: когда у вас есть контроллер blog_posts и posts_controller, разделяющие одни и те же представления.
Я настоятельно рекомендую вам прочитать url_for документацию . Чтобы помочь выяснить, где эти места имеет смысл использовать url_for.