在Haml,我一直试图让以下link_to_remote呼叫工作。它是从/questions/new
视图调用的。
#{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 :(得分:0)
map.connect ':controller/remove_tag_from_cart', :controller=>:controller , :action => 'remove_tag_from_cart'
重启服务器并检查。
EDITED
link_to_remote用于ajax请求。所以当你悬停链接时,你会得到你的网址#,但当你点击它时,它会调用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>
您可以在生成的html中看到 href =“#”
注意:如果你不想要它,你必须使用link_to。
答案 1 :(得分:0)
如果/ questions / new#是浏览器状态栏中显示的内容,则再次检查页面源,因为link_to_remote生成javascript ajax请求,实际链接隐藏在onclick属性中