我的UsersHelper中有以下方法,它创建了一个带有生成地址的链接
module UsersHelper
def random_site(generated_site)
link_to(generated_site , generated_site, target: "_blank")
end
end
我在我的视图中使用此方法助手:
= wrap(item.content.gsub(item.origine_url, random_site(item.random_address)))
例如,如果我的item.content
包含:
foobar text foobar text www.stackoverflow.com
表示我的item.origine_url == www.stackoverflow.com
内容将被替换为:
foobar text foobar text www.random_generated_address.com
问题出现在target: "_blank"
我之前添加到{strong}方法帮助的link_to
中,我在html链接中看不到target="_blank"
,当我点击链接时,它在同一页面中打开!
当我这样做时:
= random_site(item.random_address)
它运行正常,那么= wrap(item.content.gsub(item.origine_url, random_site(item.random_address)))
??
我的换行方法是:
def wrap(content)
sanitize(raw(content.split.map{ |s| wrap_long_string(s) }.join(' ')))
end
private
def wrap_long_string(text, max_width = 60)
zero_width_space = "​"
regex = /.{1,#{max_width}}/
(text.length < max_width) ? text :
text.scan(regex).join(zero_width_space)
end
答案 0 :(得分:0)
问题出在wrap()方法中,我想在其中的sanitize方法中允许一些标记和属性,我的代码将是:
def wrap(content)
sanitize(raw(content.split.map{ |s| wrap_long_string(s) }.join(' ')), :tags => %w(a), :attributes => %w(target href))
end