Ruby 2.3.1p112を使用していますが、文字列補間を使用して画像リンクを作成しようとしています。しかし、間違ってこのようなリンクのsrc引用符をエスケープします。src = \ "http://localhost:3000/t \"例を以下に示します。リンクに画像を追加するためのRuby文字列補間画像にスラッシュを接頭辞src
<a href=www.google.com target='_blank'> google.com \"<img src=\"http://localhost:3000/t\" width='1' height='1'>\"</a>
これはビューコードではありません。あなたはIRBに以下のコードを実行することによってそれを再現することができ、それは、バックエンドで発生し、ここでのクラスが出て抽出し、問題
class Link
require 'uri'
def self.link_name(url)
uri = URI.parse(url)
uri = URI.parse("http://#{url}") if uri.scheme.nil?
host = uri.host.downcase
host.start_with?('www.') ? host[4..-1] : host
end
def self.url_regex
/(http:|www.)[a-zA-Z0-9\/:\.\?]*/
end
def self.link_image(e)
email = ['[email protected]', '[email protected]']
email.map do |p|
token = new.generate_email_click_tracking_img
e.gsub(url_regex) do |url|
puts "token inloop is <a href=#{url}>#{link_name(url)} #{token} </a>"
"<a href=#{url} target='_blank'> #{link_name(url)} \"#{token}\"</a>"
end
end
end
def generate_email_click_tracking_img
url = "http://localhost:3000/t"
"<img src=\"#{url}\" width='1' height='1'>"
end
end
を示すように簡略化されています
a = "me in www.google.com, you in http://www.facebook.com"
Link.link_image(a)
あなたは上記のコードを実行した場合
<a href=http://www.facebook.com>facebook.com <img src="http://localhost:3000/t" width='1' height='1'> </a>
しかしプット声明番目なし:、あなたは文を置くが正しいことを記録し、画像のsrcがあることがわかりますE画像SRCは、エスケープ引用符で囲まれています。http:// localhost:3000/T \」
<a href=http://www.facebook.com target='_blank'> facebook.com \"<img src=\"http://localhost:3000/t\" width='1' height='1'>\"</a>
画像SRCに引用エスケープを削除するための最良の方法は何ですか?
あなたは「バックスラッシュ接尾辞」を意味する「スラッシュ接頭辞」で? – Stefan