2013-11-24 74 views
0

我在UsersHelper以下方法,建立與生成的地址爲什麼我的link_to不顯示目標選項?

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",我在我的link_to這是方法幫手前加入,我看不到target="_blank"在我的HTML鏈接,當我點擊鏈接,它在同一頁面打開!

當我只做:

= 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

您是否已驗證'item.content'具有'item.origine_url'?我首先測試'gsub',然後'random_site()'和'wrap'。 – vee

+0

@vinodadhikary我找到了解決方案,問題是在wrap方法中,因爲sanitize方法,我想允許「a」標記和「href,target」屬性:) – medBo

回答

0

的問題是在包裝()方法,我想允許一些標籤,並在這裏面了sanitize方法屬性,我的代碼將是:

def wrap(content) 
    sanitize(raw(content.split.map{ |s| wrap_long_string(s) }.join(' ')), :tags => %w(a), :attributes => %w(target href)) 
end 
相關問題