为什么我的link_to没有显示目标选项?

时间:2013-11-24 02:56:07

标签: ruby-on-rails

我的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

1 个答案:

答案 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