2009-04-23 92 views
2

我使用的是我從不能修改凍結串

http://www.igvita.com/2006/10/20/adding-social-bookmarks-in-rails/

This is the pastie code

得到了視圖下面的代碼,但我得到了以下錯誤:

TypeError in Pages#show 
Showing app/views/pages/show.html.erb where line #26 raised: 
can’t modify frozen string 
Extracted source (around line #26): 
23: Twitter 
24: Facebook 
25: 
26: <% current_uri = u(request.protocol << request.host_with_port << request.request_uri) 
27: title = u(@title) 
28: 
29: bookmarklets = { 
============ 

當我用這個替換

current_uri = u(request.protocol << request.host_with_port << request.request_uri) 

凍結的字符串錯誤消失了,但鏈接未被解析。即鏈接呈現如下:

http://digg.com/submit?phase=2&url={{url}}&title={{url_encoded_title}} 

嗯,我問了文章的評論,但沒有得到任何答覆。所以,我在這裏問。

謝謝

回答

3

在你的評論中,你說你有一個名爲title的助手方法。這可能會導致與標題變量的名稱衝突。

將您的標題變量重命名爲page_title。在頂部,網站列表之前以及底部生成鏈接的位置更改它。

1

另外...爲什麼你需要使用「< <」爲什麼不只是「+」。 它可能是< <正試圖將host_with_port添加到持有協議字符串的數組中(即它正在修改名爲「protocol」的凍結字符串,而不是僅將兩者一起添加),並且與request_uri字符串相同進入host_with_port。

只需使用+進行連結,他們將停止嘗試修改字符串和之前至u打算把它們加起來(),例如:

current_uri = u(request.protocol + request.host_with_port + request.request_uri) 
相關問題