Я использую friendly_id для моего приложения rails и заметил, что оно вставлено в слаг, дословно. Мне было интересно, есть ли способ отделить слаг от слов, не относящихся к SEO, таких как «и» и «для». Я попробовал немного REGEX
, но я даже не уверен, относится ли оно к friendly_id
.
В моей заявке (модель):
def to_slug(param=self.slug)
# strip the string
ret = param.strip
#blow away apostrophes
ret.gsub! /['`]/, ""
# @ --> at, and & --> and
ret.gsub! /\s*@\s*/, " at "
ret.gsub! /\s*&\s*/, " and "
# replace all non alphanumeric, periods with dash
ret.gsub! /\s*[^A-Za-z0-9\.]\s*/, '-'
# replace underscore with dash
ret.gsub! /[-_]{2,}/, '-'
# convert double dashes to single
ret.gsub! /-+/, "-"
# strip off leading/trailing dash
ret.gsub! /\A[-\.]+|[-\.]+\z/, ""
ret
end
Я определенно не специалист по регулярным выражениям, я бы хотел помочь с этим, спасибо.
P.S. Мой метод to_slug применим даже к friendly_id
? Я не могу сказать, выполняет ли гем все эти действия или нет, спасибо!