Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在我的js.erb文件中没有指向工作的链接_Javascript_Ruby On Rails_Ruby_Ruby On Rails 3_Erb - Fatal编程技术网

Javascript 为什么在我的js.erb文件中没有指向工作的链接

Javascript 为什么在我的js.erb文件中没有指向工作的链接,javascript,ruby-on-rails,ruby,ruby-on-rails-3,erb,Javascript,Ruby On Rails,Ruby,Ruby On Rails 3,Erb,我的js.erb文件中有这个 var cart_item = "<table id='something' style='width:100%'>"; cart_item += "<tr><td>"; cart_item += "<%= @contact.name %>"; cart_item += "<%= link_to_remote 'Delete', :url => {:controller => 'registrati

我的js.erb文件中有这个

var cart_item = "<table id='something' style='width:100%'>"; 
cart_item += "<tr><td>";
cart_item += "<%= @contact.name %>";
cart_item += "<%= link_to_remote 'Delete', :url => {:controller => 'registrations', :action => 'destroy' %>";
cart_item += "</td>";
cart_item += "</tr></table>";

$("#cart").append(cart_item);
var cart_item=”“;
购物车项目+=“”;
购物车项目+=“”;
购物车项目+=“{:控制器=>'注册',:操作=>'销毁'%>”;
购物车项目+=“”;
购物车项目+=“”;
$(“#购物车”)。追加(购物车项目);
它只是挂起,但当我评论链接到功能时,一切都很好。我甚至尝试将它作为链接到,但它仍然挂起,什么也没做……我是否遗漏了四件事

第一:不需要
:url
选项。只需将散列作为第二个参数传递给
link\u to\u remote
,它就可以工作了

第二:您应该使用URL帮助程序来完成此操作。此外,如果您使用的是
destroy
操作,您可能需要传递一个id。这意味着您将执行类似以下操作:

link_to_remote 'Delete', registration_path(id)
您将为此执行类似于
resources:registrations
的操作。不过,我不确定您的应用程序中包含哪些注册,因此我可以就此提供建议

第三:最重要的是,
link\u to\u remote
行上的散列缺少了结尾的花括号。如果忽略它,将导致语法错误

四:
link\u to\u remote
在Rails 3.0中被弃用。您应该使用
link\u来“删除”,注册路径(id),:remote=>true
四件事

第一:不需要
:url
选项。只需将散列作为第二个参数传递给
link\u to\u remote
,它就可以工作了

第二:您应该使用URL帮助程序来完成此操作。此外,如果您使用的是
destroy
操作,您可能需要传递一个id。这意味着您将执行类似以下操作:

link_to_remote 'Delete', registration_path(id)
您将为此执行类似于
resources:registrations
的操作。不过,我不确定您的应用程序中包含哪些注册,因此我可以就此提供建议

第三:最重要的是,
link\u to\u remote
行上的散列缺少了结尾的花括号。如果忽略它,将导致语法错误


四:
link\u-to\u-remote
在Rails 3.0中被弃用。您应该使用
link\u-to'Delete',registration\u-path(id),:remote=>true
将所有内容提取到一个部分,称之为
\u-cart\u-item.html.erb

<table id='something' style='width:100%'>
<tr><td>
<%= @contact.name %>
<%= link_to 'Delete', {:controller => 'registrations', :action => 'destroy', :id => @contact.id}, :remote => true %>
</td>
</tr></table>
但Ryan Bigg仍然是对的,你应该:

  • 使用RESTful路由和路由帮助程序
  • 对AJAX请求使用
    :remote=>true
    ,正如我所做的那样
  • 确保将
    id
    传递给
    destroy
    操作,以便它知道要销毁哪个对象

    • 将所有这些提取到一个部分,称之为
      \u cart\u item.html.erb

      <table id='something' style='width:100%'>
      <tr><td>
      <%= @contact.name %>
      <%= link_to 'Delete', {:controller => 'registrations', :action => 'destroy', :id => @contact.id}, :remote => true %>
      </td>
      </tr></table>
      
      但Ryan Bigg仍然是对的,你应该:

      • 使用RESTful路由和路由帮助程序
      • 对AJAX请求使用
        :remote=>true
        ,正如我所做的那样
      • 确保将
        id
        传递给
        destroy
        操作,以便它知道要销毁哪个对象

      购物车项目字符串不会像调用$(“#购物车”)时那样,通过link#to#u函数附加到#购物车。append(购物车项目);您应该更新您的问题,以包括您正在使用的Rails版本。link_to_remote不久前已被弃用-尽管您可以通过原型帮助程序将其包括在内,但cart_项字符串不会像调用$(“#cart”)时那样使用link#to_函数附加到#cart中。append(cart#item);您应该更新您的问题,以包括您正在使用的Rails版本。link_to_remote不久前被弃用-尽管您可以通过prototype_helpers将其包括在内,但我认为它更与js.erb中的链接或其他内容相关…我将行更改为该行以进行测试,结果仍然相同------cart_item+=“”;我认为它与js.erb中的链接或其他内容更相关……我将行更改为此进行测试,结果仍然相同------cart\u item+=“”;谢谢你的建议,将一些部分提取到一个部分,这对我来说很有效。在js.erb中使用ruby有点混乱。谢谢你的建议,将一些部分提取到一个部分,这对我来说很有效。在js.erb中使用ruby有点混乱。