Во-первых, вы должны определить регулярное выражение, соответствующее HTTP-строкам, например
IPv4_PART = /\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]/ # 0-255
REGEXP = %r{
https?:// # http:// or https://
([^\s:@]+:[^\s:@]*@)? # optional username:pw@
( (([^\W_]+\.)*xn--)?[^\W_]+([-.][^\W_]+)*\.[a-z]{2,6}\.? | # domain (including Punycode/IDN)...
#{IPv4_PART}(\.#{IPv4_PART}){3} ) # or IPv4
(:\d{1,5})? # optional port
([/?]\S*)?
}iux
затем, предположим, что тело комментария является str, вы делаете:
str.gsub(REGEXP) do |m|
link_to m, m
end