rails to_param url Ограничитель регулярных выражений - PullRequest
0 голосов
/ 05 ноября 2010

Я прошу прощения за заголовок, это не имеет особого смысла.

Так что на моей модели messages.rb я использую:

def to_param
    "#{id}-#{message.gsub(/\W/, '-').downcase}"
end

, чтобы сделать так, чтобы показ URLпримерно так:

http://myapp.com/messages/1-this-is-a-message

Проблема в том, что когда сообщение действительно длинное и в режиме реального времени вызывает сбой приложения.

КакМогу ли я изменить эту функцию to_params, чтобы ограничить количество символов, которые будут отображаться в URL, до первых 25 или около того.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

Используйте метод slice объекта String или запись []: ([] это просто псевдоним slice)

def to_param
   "#{id}-#{message[0..25].gsub(/\W/, '-').downcase}"
end
0 голосов
/ 05 ноября 2010
 def to_param
     "#{id}-#{truncate(message, :length => 40).gsub(/\W/, '-').downcase}"
 end

Вы можете использовать усеченный помощник Rails:

truncate(message, :length => 40)

сообщение - это ваше сообщение, и вы можете указать свою длину

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