Как мне поменять эту ссылку с Rails? - PullRequest
2 голосов
/ 15 декабря 2010

Я пытаюсь взять эту ссылку ..

http://www.youtube.com/watch?v=4lzi_3SM9-o

И превратить это в это:

http://www.youtube.com/v/4lzi_3SM9-o

Для этого мне нужен какой-то способ перехватить watch?v= и переключить его с помощью v/

И я хотел бы добиться этого в моей модели с помощью def tube_link

Есть идеи?

Ответы [ 3 ]

4 голосов
/ 15 декабря 2010
3 голосов
/ 15 декабря 2010

Нет необходимости в регулярных выражениях, просто используйте замену строки:

url["watch?v="] = "v/"

Но имейте в виду, что вы можете получить ошибку индексации, если индексируете что-то, чего нет в строке. (см. здесь для получения дополнительной информации).

Редактировать: Что-то вроде этого может быть более читабельным ( и более надежным ):

newUrl = oldUrl.gsub("watch?v=", "v/")
2 голосов
/ 15 декабря 2010

Вы должны заменить двойные кавычки на одинарные. Это сэкономит ваше время

t1 = Time.now
for i in 1..100000
  "http://www.youtube.com/watch?v=4lzi_3SM9-o".gsub("watch\?v=", "v/")
end
t2 = Time.now 
p t2-t1

>ruby test.rb
1.173

t1 = Time.now
for i in 1..100000
"http://www.youtube.com/watch?v=4lzi_3SM9-o".gsub('watch\?v=', 'v/')
end
t2 = Time.now 
p t2-t1

>ruby test.rb
0.406

1,173 против 0,406

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