2010-05-27 60 views
0

在Haml中,我一直試圖讓下面的link_to_remote調用工作。它從/questions/new視圖中調用。link_to_remote在Haml中不會生成正確的url

#{link_to_remote image_tag('x.png'), :url => {:controller => 'questions', :action => 'remove_tag_from_cart'}} 

我試過以下變化。

#{link_to_remote image_tag('x.png'), :url => {:controller => :questions, :action => :remove_tag_from_cart}} 
#{link_to_remote image_tag('x.png'), :controller => 'questions', :action => 'remove_tag_from_cart'} 
#{link_to_remote image_tag('x.png'), :controller => :questions, :action => :remove_tag_from_cart} 

在任何情況下,我都會得到以下鏈接:/questions/new#。我不知道爲什麼!

我也有在routes.rb中下面,以爲這是問題...

map.connect ':controller/remove_tag_from_cart', :action => 'remove_tag_from_cart' 

回答

0
map.connect ':controller/remove_tag_from_cart', :controller=>:controller , :action => 'remove_tag_from_cart' 

重新啓動服務器並檢查。

EDITED

link_to_remote用於ajax請求。所以當你懸停鏈接時,你會得到你的url附加#,但是當你點擊它時,它會調用對你提供的url的ajax請求。我在下面解釋它。

<%= link_to_remote image_tag('x.png'), :url => {:controller => 'questions', :action => 'remove_tag_from_cart'}} %> 

當您檢查用它生成的html你會得到

<a onclick="new Ajax.Request('/questions/remove_tag_from_cart', {asynchronous:true, evalScripts:true}); return false;" href="#"> 
    <img src="/images/x.png" alt="X"/> 
</a> 

你可以看到HREF = 「#」在生成的html

注意:如果你不想它要麼你必須使用link_to。

+0

謝謝,但這並不解決問題...> _> – user5243421 2010-05-27 07:40:21

+0

檢查我編輯的答案。 – Salil 2010-05-27 07:48:59

+0

太棒了。謝謝! – user5243421 2010-05-27 07:52:24

0

如果/問題/新#在你的狀態欄中顯示的瀏覽器是什麼,然後檢查網頁源再次因爲link_to_remote生成JavaScript Ajax請求的和實際的鏈接隱藏在onclick屬性