Вы не можете изменить разделитель se. Это жестко запрограммировано в Rails.
Например, post_554 генерируется помощником dom_id
, который внутренне опирается на класс RecordIdentifier
.
Вот определение.
def dom_id(record, prefix = nil)
if record_id = record.id
"#{dom_class(record, prefix)}#{JOIN}#{record_id}"
else
dom_class(record, prefix || NEW)
end
end
Разделитель, константа JOIN
, определена как фиксированная строка, поэтому вы не можете ее изменить.
module RecordIdentifier
extend self
JOIN = '_'.freeze
NEW = 'new'.freeze
Есть два способа изменить это:
- Создайте своего собственного помощника (рекомендуется)
- Перезаписать существующие методы / помощники своими собственными реализациями (не рекомендуется)
Существуют также некоторые технические ограничения, объясняющие причину этого выбора, в основном связанные с языком Rails.
Например, говоря о символах
:post_554 # valid symbol
:post-554 # invalid symbol
:"post-554" # valid symbol
Использование -
, вероятно, потребует менее чистого подхода к Ruby.
Лично я предпочитаю использовать -
, а не _
, и я стараюсь избегать стандартных помощников Rails, если это строго не требуется.