#ruby-on-rails #ruby-on-rails-3 #twitter #gsub #twitpic
#ruby-on-rails #ruby-on-rails-3 #Twitter #gsub #twitpic
Вопрос:
У меня есть канал Twitter, отображающий мои твиты на странице. Я также хочу включить миниатюры моих изображений twitpic. Я использовал gsub для замены текста, но мне трудно разобраться в синтаксисе.
Типичный вывод twitpic tweet с необработанным тегом будет выглядеть следующим образом:
This is a tweet with an image. http://twitpic.com/12345
Тогда ссылка на изображение будет
http://twitpic.com/show/thumb/12345.jpg
Вот простой код для отображения текста:
<% @tweets.each do |tweet| %>
<li>
<%= raw tweet.text %>
</li>
<% end %>
Итак, я экспериментировал с gsub, но довольно сильно застрял.
Я могу выполнить поиск по http://twitpic.com /* по /http://twitpic.com ?[^] и затем удаляет все вместе с url, заменяя его необработанным html, но это не помогает, если я хочу связать изображение.
Если бы я мог извлечь идентификатор twitpic (http://twitpic.com/12345 ), я мог бы поместить этот 12345 во вспомогательный метод, который вводит строку и вставляет ее в связанное изображение.
Если бы кто-нибудь мог дать мне некоторое представление о том, как извлечь этот идентификатор, я был бы очень признателен.
Ответ №1:
Может быть, вы можете использовать #split вместо регулярного выражения?
"This is a tweet with an image. http://twitpic.com/12345".split("http://twitpic.com/")[1]
Комментарии:
1. Возможно, не самое элегантное решение, но это сработало великолепно: <%= необработанный tweet.text.gsub(/http://twitpic.com ? [^>] /) { ссылка на image_tag(» twitpic.com/show/thumb /# {tweet.text.split(» twitpic.com /»)[1] }», :border=>0), » twitpic.com /# {tweet.text.split(» twitpic.com /»)[1] }» } %>
Ответ №2:
Если вы хотите извлечь идентификатор из http://twitpic.com/show/thumb/12345.jpg
, попробуйте это, чтобы извлечь идентификатор из него:
"http://twitpic.com/show/thumb/12345.jpg".scan(/^http://twitpic.com/show/thumb/(d ).jpg$/).flatten.first