Jquery 删除方法不使用';我不能在轨道上工作
我当前的代码如下所示:Jquery 删除方法不使用';我不能在轨道上工作,jquery,ruby-on-rails,ruby-on-rails-3,actioncontroller,Jquery,Ruby On Rails,Ruby On Rails 3,Actioncontroller,我当前的代码如下所示: <%= javascript_include_tag "hchq.js", "bootstrap-image-gallery.js", "bootstrap-image-gallery.min.js", "load-image.min.js", "media.js", "jquery", "bootstrap.js", "jquery.dataTables.js", "DT_bootstrap.js" %> <%= javascript_inclu
<%= javascript_include_tag "hchq.js", "bootstrap-image-gallery.js", "bootstrap-image-gallery.min.js", "load-image.min.js", "media.js", "jquery", "bootstrap.js", "jquery.dataTables.js", "DT_bootstrap.js" %>
<%= javascript_include_tag :defaults %>
深入研究这个问题,我发现:这建议我把默认值列出来。我把它拿出来,404就消失了,但是有了它,有了它,我就不能发出删除请求。它只是引导我进入展示页面
你知道发生了什么,我如何解决这个问题,这样我就不会得到404,可以发出删除请求了吗
更新:
下面是实际的删除链接:
,它生成了以下html:
,我觉得这是对的
下面是日志中的一行:
Started GET "/clients/2" for 127.0.0.1 at 2012-09-27 16:50:23 -0500
Processing by ClientsController#show as HTML
Parameters: {"id"=>"2"}
Client Load (0.3ms) SELECT "clients".* FROM "clients" WHERE "clients"."id" = ? LIMIT 1 [["id", "2"]]
Rendered clients/show.html.erb within layouts/application (1.2ms)
Completed 200 OK in 47ms (Views: 45.4ms | ActiveRecord: 0.3ms)
Started GET "/assets/defaults.js" for 127.0.0.1 at 2012-09-27 16:50:23 -0500
Served asset /defaults.js - 404 Not Found (4ms)
我尝试过的另一件事是去掉默认行,因为它是rails 3.1之前的版本,并且使用“application”作为javascript包含标记中的唯一内容,我仍然有这个问题。将Link改为Button来修复它
为什么?将链接更改为按钮以修复它
为什么?唯一合理的解释与CRSF令牌Rails表单有关,在服务器上出现非GET操作时除外。在rails中构建表单时,为了安全起见,您有一个传递到服务器的令牌。当您为和
form\u标签
助手使用form\u标签时,这是自动内置的(表单使用帖子和其他内容)
由于应用程序\u控制器中的保护\u免受伪造
,rails不允许您从表单外部执行POST/DELETE/PUT操作,这就是为什么链接到
不起作用的原因,它只是一个链接,试图执行POST操作。但是如果你评论这一行,链接就可以正常工作了
此处的更多信息:唯一合理的解释与CRSF token Rails表单有关,当服务器上出现非GET操作时除外。在rails中构建表单时,为了安全起见,您有一个传递到服务器的令牌。当您为
和form\u标签
助手使用form\u标签时,这是自动内置的(表单使用帖子和其他内容)
由于应用程序\u控制器中的保护\u免受伪造
,rails不允许您从表单外部执行POST/DELETE/PUT操作,这就是为什么链接到
不起作用的原因,它只是一个链接,试图执行POST操作。但是如果你评论这一行,链接就可以正常工作了
这里的更多信息:您的删除链接只是一个链接,js magic将其转换为一个表单,然后发布。这就是为什么表单起作用,而链接没有起作用-它必须只是保持链接
至于为什么删除链接不起作用,您缺少js文件(因此是404),或者js中有错误。如果您正确地获得js包含,则该链接将由助手转换。在浏览器中检查js控制台并查找错误
您的链接正在向您发送一个get请求,因此显然内置的rails js无法转换该链接。您的删除链接只是一个链接,js magic将其转换为表单,然后发布。这就是为什么表单起作用,而链接没有起作用-它必须只是保持链接
至于为什么删除链接不起作用,您缺少js文件(因此是404),或者js中有错误。如果您正确地获得js包含,则该链接将由助手转换。在浏览器中检查js控制台并查找错误
您的链接正在向您发送一个get请求,因此显然内置的rails js无法转换链接。如果将
移动到另一个javascript\u include\u标记的上方,会发生什么情况?@ScottJShea没有任何区别。请尝试使用符号,而不是字符串。@MurifoX这不起作用。它仍然只是重定向到显示页面。您的路由中是否有资源:客户机。rb
?如果将
移动到另一个javascript\u include\u标记
上方会发生什么?@ScottJShea没有任何区别。请尝试使用符号,而不是字符串。@MurifoX这不起作用。它仍然只是重定向到显示页面。您的路由中是否有资源:客户端
。rb
?我相信按钮将链接包装在表单中。我现在就发布一个最详细的答案。我相信button\u to
将链接包装在表单中。我现在就发布一个最详细的答案。
Started GET "/clients/2" for 127.0.0.1 at 2012-09-27 16:50:23 -0500
Processing by ClientsController#show as HTML
Parameters: {"id"=>"2"}
Client Load (0.3ms) SELECT "clients".* FROM "clients" WHERE "clients"."id" = ? LIMIT 1 [["id", "2"]]
Rendered clients/show.html.erb within layouts/application (1.2ms)
Completed 200 OK in 47ms (Views: 45.4ms | ActiveRecord: 0.3ms)
Started GET "/assets/defaults.js" for 127.0.0.1 at 2012-09-27 16:50:23 -0500
Served asset /defaults.js - 404 Not Found (4ms)