Closed zuf closed 13 years ago
Cool URLs don't change? то есть я все понимаю но уже существующие нематериализованные кусочки поменяются
Зависит от реализации. Например у меня ссылки работают через friendly_id и там параметризация происходит только при сохранении объекта. Т.е. параметризованная строка (slug в терминах friendly_id) хранится в базе. Соответственно текущие slug'и не изменятся, но будут меняться после пересохранения экземпляров моделей. Но и это не страшно, потому что friendly_id помнит о старых вариантах slugs и они будут работать дальше пока их не удалят из базы.
Так что для меня изменение поведения в данном вопросе совсем не страшно и даже желательно. С другой стороны доработка параметризации твердого знака это довольно вторичная хотелка, каждый, кому это нужно может без труда сделать себе monkey patch и без проблем заменять твердый знак на y или j. Этим тикетом я лишь хотел показать, что есть не очень красивые места, в которых параметризация работает не лучшим, на мой взгляд, образом.
Не согласен с Юликом — пермалинки, все же, на то и пермалинки, чтобы быть жестко связанными с сущностью на сайте.
Согласен, что черточка никуда не годится, но это, все же, проблема уровня parameterize или friendly_id. То есть, если бы это распространялось только на русский язык — можно было бы написать хак для этого, но, "julik's gem".parameterize == "julik-s-gem", а это тоже неправильно. Думаю, апострофы нужно исправлять на уровне выше — на мой взгляд, нужно не все подряд заменять на минусы :)
Закрою здесь.
Мне кажется не очень красиво заменять твердый знак дефисом в методе parameterize:
Визуально в этом примере из двух слов мы получили четыре. Понятно, что это идет из транслитерации, где твердый знак превращается в одиночную кавычку-апостроф, которая затем превращается в дефис:
Можно попробовать заменять твердый знак на y или j: