Можем ли мы изменить способ, которым Rails пишет HTML-идентификаторы и тому подобное? - PullRequest
0 голосов
/ 26 февраля 2010

Я только что начал проверять Wordpress 'CSS Architecture , чтобы изучить систему, которая создана и достаточно мощна для изучения лучших привычек HTML. Я заметил, что они используют все дефисы - (например, post-554), в то время как Rails использует подчеркивания _ (например, post_554). Мне интересно, есть ли какая-то настройка для настройки этого в Rails, что-то вроде ActionView::Template.word_boundary = "-".

Есть? Не то, чтобы это действительно имело значение, просто пытаясь понять, почему люди делают вещи так, как они делают.

:)

1 Ответ

1 голос
/ 26 февраля 2010

Вы не можете изменить разделитель 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

Есть два способа изменить это:

  1. Создайте своего собственного помощника (рекомендуется)
  2. Перезаписать существующие методы / помощники своими собственными реализациями (не рекомендуется)

Существуют также некоторые технические ограничения, объясняющие причину этого выбора, в основном связанные с языком Rails.

Например, говоря о символах

:post_554   # valid symbol
:post-554   # invalid symbol
:"post-554" # valid symbol

Использование -, вероятно, потребует менее чистого подхода к Ruby.

Лично я предпочитаю использовать -, а не _, и я стараюсь избегать стандартных помощников Rails, если это строго не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...