1

我正在尝试使用 AJAX 创建一个链接来销毁和进入数据库,但我也希望它在没有启用 JavaScript 的情况下运行

但是下面的代码

<%=link_to_remote "Delete", :update => "section_phone", :url => {:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id }, :href => url_for(:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id)%>

产生输出

 <a href="#" onclick="new Ajax.Updater('section_phone', '/phone_numbers/destroy/1', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('b64efb643e49e9af5e2e195a90fd5a8b6b99ece2')}); return false;">Delete</a>

由于某种原因,url_for 无法正常工作,并且 href 标记设置为 #。我不知道为什么这不起作用,因为我没有收到日志中的任何错误通知

有谁知道为什么会这样?

谢谢

4

2 回答 2

2

您在 :update 和 :url 所属的 options{} 哈希周围缺少花括号,以将它们与 :href 所属的 html_options{} 哈希分开。

试试这个:

<%=link_to_remote "Delete", {:update => "section_phone", :url => {:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id }}, :href => url_for(:controller => "phone_numbers", :action => "destroy", :id => phone_number_display.id)%>

这将使 URL 显示为链接的 href 属性,但对销毁操作的 GET 请求不应将其删除。您将需要其他东西(如 vrish88 所建议的),以便您可以向销毁操作发出 GET 请求以获取表单,然后发布该表单以实际删除电话号码。

于 2009-03-27T03:26:05.027 回答
1

我相信您正在寻找这样的东西:RailsCasts - Destroy without JavaScript

于 2009-03-26T21:38:57.030 回答