如何修复在 Ruby/Rails 中编辑数据库中的所有文章的编辑表单?



我正在遵循Ruby on Rails入门指南,在编辑/更新数据库中的文章时遇到了问题。我创建了表单,并从索引中获得了一个链接,并按照指南的要求在控制器中定义了所有方法(请参阅 pastebin 链接中的代码)。但是,当我单击编辑视图上的"更新文章"按钮并返回索引时,它不会只更新一篇文章,而是更新所有文章。

我已经浏览了代码,据我所知,它与指南中的代码相同,所以我不确定为什么我会得到不同的结果。

articles_controller.rb

索引.html.erb

编辑.html.erb

我认为错误出在这一行中,因为也许它没有正确传递 id 参数或其他什么?

<%= form_with(model: @article, local: true) do |form| %>

据我所知,在控制器的编辑定义中找到特定文章后,我将特定文章传递给编辑视图。然后表单向服务器提交 PATCH 请求到/articles/:id,该请求将由控制器中的更新定义处理。此更新将只找到它,并通过给定的文章对象更新其参数,然后带到显示视图,或者如果它以某种方式不符合模型验证,则显示错误。

您能否将对象从主文章模型更改为实例对象(@article)?更新适用于单个对象。

if Article.update(article_params) 

if @article.update(article_params)

最新更新