首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除方法rails 6

删除方法rails 6
EN

Stack Overflow用户
提问于 2020-03-26 23:28:50
回答 2查看 1.8K关注 0票数 0

我制作了一个web应用程序,允许用户添加、编辑和删除文章。我遇到的问题是delete方法不起作用。当我点击“删除”旁边的文章,我想摆脱什么都没有发生,我也没有得到任何错误。我认为它的作用是GET方法而不是DELETE方法,但我不知道为什么它不能工作。

任何帮助都将不胜感激!

articles_controller.rb

代码语言:javascript
复制
def destroy
  @article = Article.find(params[:id])
  @article.destroy
  redirect_to articles_path
end

index.html.erb

代码语言:javascript
复制
<tbody>
  <% @articles.each do |article| %>
  <tr>
    <td><%= article.title %></td>
        <td><%= article.description %></td>

        <td><%= link_to 'Show', article_path(article) %></td>
        <td><%= link_to 'Edit', edit_article_path(article) %></td>
        <td><%= link_to 'Delete', articles_path(article), method: :delete, data: {confirm: "Are you sure?"} %></td>

  </tr>
  <% end %>

控制台当我点击Delete时:

代码语言:javascript
复制
Started GET "/articles.5" for ::1 at 2020-03-26 16:45:32 +0000
Processing by ArticlesController#index as
  Rendering articles/index.html.erb within layouts/application
  Article Load (0.4ms)  SELECT "articles".* FROM "articles"
  ↳ app/views/articles/index.html.erb:14
  Rendered articles/index.html.erb within layouts/application (Duration: 4.1ms | Allocations: 1596)
[Webpacker] Everything's up-to-date. Nothing to do
  Rendered layouts/_navigation.html.erb (Duration: 0.3ms | Allocations: 85)
Completed 200 OK in 72ms (Views: 70.3ms | ActiveRecord: 0.4ms | Allocations: 8290)

routes.rb

代码语言:javascript
复制
Rails.application.routes.draw do
  root 'pages#home'
  resources :articles, only: [:show, :index, :new, :create, :edit, :update, :destroy]

end

Application.js

代码语言:javascript
复制
require("@rails/ujs").start()
require jquery
require jquery_ujs
require bootstrap-sprockets
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-27 04:06:14

我想出了解决这个问题的办法。通过更改

<td><%= link_to 'Delete', article_path(article), method: :delete, data: {confirm: "Are you sure?"} %></td>

<td><%= button_to 'Delete', article_path(article), method: :delete, data: {confirm: "Are you sure?"} %></td>

这解决了我的问题。

票数 8
EN

Stack Overflow用户

发布于 2020-03-27 00:56:33

这是错误的。

代码语言:javascript
复制
<td><%= link_to 'Delete', articles_path(article), method: :delete, data: {confirm: "Are you sure?"} %></td>

应该是..。

代码语言:javascript
复制
<td><%= link_to 'Delete', article_path(article), method: :delete, data: {confirm: "Are you sure?"} %></td>

使用项目显示路径,而不是arcticle索引路径。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60870673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档