[英]Rails 3 - Javascript :confirm not working for link_to and button_to with :method => :delete
[英]link_to with :method => :delete routing through GET not DELETE rails 4
我正在制作Ruby on Rails应用程序,遇到了一个问题,我认为这与我的应用程序中的Javascript无法正常工作有关。
我遇到的特定问题是link_to:
<%= link_to 'Sign out', destroy_user_session_path, :method => :delete %>
如您所见,这是相当标准的。
我在控制台中得到了这个:
Started GET "/user/sign_out" for ::1 at 2015-06-02
我认为这可能与bootstrap和我的application.js文件有关,但是我在网上找到的任何解决方案都没有帮助。
这是我的application.js文件:
//= require bootstrap-sprockets
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
在我的应用程序的早期,我在删除同一应用程序中的“空格”实体时遇到了类似的问题,而其他类似的JS问题也是如此。
顺便说一下,这是在Rails 4上
Rails入门Javascript驱动程序(UJS)-默认情况下, jquery-rails
使用带有data-method
链接的拦截点击并发送AJAX请求,该请求发送正确的HTTP方法,或者在客户端不支持通过发送特定动词时伪造该方法具有特殊_method
参数的POST请求。
这是因为HTML仅支持链接的GET操作和表单的GET|POST
。
您最有可能遇到JavaScript问题,例如语法错误,这会阻止UJS驱动程序执行其工作。 在浏览器中打开控制台。
我在这里检查了所有评论。 所有包含项均已正确设置。 但是我注意到,删除文章不起作用,而删除评论则可以。 重写一些代码并在此处进行检查后,我发现两个文件在编辑器中看起来完全相同,但是一个版本可以工作,而一个版本不能工作!
咖喱博客/应用/视图/用品/ index.html.erb:
<h1>Listing Articles</h1>
<%= link_to 'New article', new_article_path %>
<table>
<tr>
<th>Title</th>
<th>Text</th>
<th colspan="3"></th>
</tr>
<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td><%= article.text %></td>
<td><%= link_to 'Show', article_path(article) %></td>
<td><%= link_to 'Edit', edit_article_path(article) %></td>
<td><%= link_to 'Delete', article_path(article),
method: :delete,
data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
但是,通过xxdiff
查看文件,我发现在一个版本中,仅使用制表符,而另一个版本中也使用空格。 可能是来自教程中的复制粘贴代码。 因此,用制表符代替空白确实可以解决该问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.