所以我正在做Jumpstarts Blogger教程:
http://tutorials.jumpstartlab.com/projects/blogger.html#i1:-form-based-workflow
我试图通过在我的控制器中添加destroy方法来删除文章,但是在实际删除文章时似乎存在数据库问题。这些文章在我的本地服务器上运行时被删除了,但似乎不是从数据库中删除了吗?
这是我的articles_controller.rb
class ArticlesController < ApplicationController
include ArticlesHelper
def index
@articles = Article.all
end
def show
@article = Article.find(params[:id])
end
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
@article.save
redirect_to article_path(@article)
end
def destroy
@article = Article.find(params[:id])
@article.destroy
redirect_to article_path
end
end
我的show.html.erb
<h1><%= @article.title %></h1>
<p><%= @article.body %></p>
<%= link_to "<< Back to Articles List", articles_path %>
<%= link_to "delete", article_path(@article) ,
method: :delete ,
data: {confirm: "Really delete the article?"}%>
articles.helper.erb
module ArticlesHelper
def article_params
params.require(:article).permit(:title, :body)
end
end
我还运行了控制台并搜索了Article.find(1)
,它只找到了最多3的索引。
我一直在搞乱创建和删除文章(这就是为什么它取决于索引13),当我试图删除和文章时,我得到了这个错误:
ActiveRecord::RecordNotFound in ArticlesController#show
Couldn't find Article with 'id'=13
非常感谢任何建议或建议。
答案 0 :(得分:0)
在destroy
操作中,将重定向更改为articles_path
(复数)而不是单数版本。单数版本将尝试查找您刚刚删除的文章,该文章当然不再存在。
def destroy
@article = Article.find(params[:id])
@article.destroy
redirect_to articles_path # pluralized the path
end