Rails не может параметризовать символы кириллицы - PullRequest
1 голос
/ 25 июля 2011

Наше приложение автоматически генерирует URL-адреса страниц, используя параметризованную версию имени страницы. Например:

http://www.domainname.com/this-is-the-page-name

Simple. Работает нормально, за исключением случаев, когда в имени страницы используются кириллические символы, метод параметризации возвращает пустую строку:

"Пробна галерия".parameterize

Я копался в Интернете о том, как с этим справиться, и найденные мной предложения указывают на методы транслитерации. Хотите знать, есть ли простой прямой способ справиться с этим.

Ответы [ 2 ]

0 голосов
/ 19 декабря 2016

Попробуйте это:

def to_slug      
  # /854638/luchshii-sposob-sozdaniya-slagov-chitabelnyh-identifikatorov-v-rails

  #strip the string
   ret = self.strip

   #replace all whitespaces and underscores to dashes
   ret.gsub!(/[\s_]+/, '-')

   #replace all non alphanumeric, non dashes with empty string
   ret.gsub! /\s*[^A-Za-z0-9А-Яа-я\-]\s*/, ''

   #convert double dashes to single
   ret.gsub! /-+/,"-"

   #strip off leading/trailing dashes
   ret.gsub! /\A[-]+|[-]+\z/,""

   ret
end
0 голосов
/ 25 июля 2011

Попробуйте использовать gsub:

irb> "Пробна галерия".gsub!(/\s/,'-')
  => "Пробна-галерия" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...