2014-11-20 50 views
0

在Rails中,我有一個「通知」類,其中一個字段是「鏈接」。此類中包含的鏈接的格式如下:exchange_path(6),這是交換控制器中顯示操作的路徑。Rails在數據庫中顯示鏈接使用link_to

我現在正試圖輸出這個鏈接這樣:

<%= link_to "View Exchange", notification.link %> 

此行是一個循環開始爲這樣的:

<% @notifications.each do |notification| %> 

當我點擊這個鏈接,它需要我到本地主機:3000 /用戶/ exchange_path(6)而不是本地主機:3000 /交流/ 6像我所期望的。 (環路產生故障鏈路爲在本地主機:3000 /用戶/ 2)

回答

0

你可以這樣做:

<%= link_to("View Exchange", "/#{notification.link.gsub('(', '/').gsub(')', '').gsub('_path', 's')}") %> 

或建立模型中的一種方法,其格式爲您:

def format_link 
    link.gsub('(', '/').gsub(')', '').gsub('_path', 's') 
end 

並調用在你的link_to:

link_to("View Exchanges", notification.format_link) 

這將只有當所有的環節都嚴格按照格式化工作在這個問題

+0

謝謝,但這需要我直接localhost:3000/exchange_path(8),而不是調用控制器動作 – Arw50452 2014-11-20 19:58:52

+0

沒有看到格式化您首先包括,現在工作正確! – Arw50452 2014-11-20 20:06:13

+0

很酷。隨時接受。 :) – 2014-11-20 20:06:39

1

這可能是可怕的例子...

<%= link_to "View Exchange", eval(notification.link) %> 

應該評估和使用路徑的助手。但你需要100%肯定沒有什麼不好的東西放在鏈接字段..

+0

謝謝,這可能會有效,但由於您提出的安全問題,我採用了上述答案。 – Arw50452 2014-11-20 20:31:38

相關問題