Ruby on rails Rails:param丢失或值为空:article

Ruby on rails Rails:param丢失或值为空:article,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是Rails新手,在rubyonrails.org教程之后,我开始制作一个web应用程序 我的应用程序是一个包含文章的博客。。我实现了创建和编辑功能,这些功能运行得很好,但在尝试访问http://localhost:3000/articles/2/edit以编辑文章。 错误为ActionController::ArticlesController中的参数缺失#编辑参数缺失或值为空:articles 以下是我的ruby代码: 类ArticlesController

我是Rails新手,在rubyonrails.org教程之后,我开始制作一个web应用程序

我的应用程序是一个包含文章的博客。。我实现了创建和编辑功能,这些功能运行得很好,但在尝试访问
http://localhost:3000/articles/2/edit
以编辑文章。 错误为
ActionController::ArticlesController中的参数缺失#编辑参数缺失或值为空:articles

以下是我的ruby代码:

类ArticlesController<应用程序控制器 def索引 @冠词=冠词 结束

错误警报的目标行是
params.require(:articles).permit(:title,:text)
我真的不知道错误在哪里,因为2分钟前一切正常


感谢您的帮助

您正在尝试用编辑方法更新文章。因此,当您导航到“articles/2/edit/”时,它会尝试更新第2条。但你没有通过任何参数

我想你可能想要的是:

def edit
  @article = Article.find(params[:id])
end

def update
  @article = Article.find(params[:id])
  if @article.update(article_params)
    redirect_to @article
  else
    render 'edit'
  end
end

我知道已经晚了,但我希望这个解决方案能帮助别人。添加到
ArticleController
以下两种方法:

def edit
  @article = Article.find(params[:id])
end


确保您使用的是
:article
,而不是
:articles
。以防其他人想知道他们是如何遇到同样的问题的。我发现教程中的说明令人困惑。因为它们遵循的约定是控制器方法遵循以下顺序:索引、显示、编辑、创建、更新和销毁。最初创建“编辑”后的说明在创建“更新”方法时不显示“编辑”方法,而是在“更新”方法上方显示“创建”方法。所以,如果你像我一样,不注意,你可以用“更新”中的其余内容更新“编辑”方法。
def edit
  @article = Article.find(params[:id])
end
def update
    @article = Article.find(params[:id])

    if @article.update(article_params)
      redirect_to @article
    else
      render 'edit'
    end
end