Ruby on rails Rails:param丢失或值为空:article
我是Rails新手,在rubyonrails.org教程之后,我开始制作一个web应用程序 我的应用程序是一个包含文章的博客。。我实现了创建和编辑功能,这些功能运行得很好,但在尝试访问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
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