我一直关注JumpStartLab Blogger 2项目,并且我坚持看似简单的事情。 I'm at this point只需向上滚动显示
的页面@article = Article.find(params[:id])
基本上我已经将所有内容都放在了发球台上(我认为),在点击其中一篇文章的链接后刷新浏览器后,我得到以下错误:
在ArticlesController#show中显示ActiveRecord :: RecordNotFound
无法找到带有' id' = 1
的文章
我的Articles_controller.rb看起来像这样
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
def show
@article = Article.find(params[:id])
end
end
我的index.html.erb看起来像这样
<h1>All Articles</h1>
<ul id="articles">
<% @articles.each do |article| %>
<li>
<%= link_to article.title, article_path(article), class: 'article_title', id: "article_#{article.id}" %>
</li>
<% end %>
</ul>
<%= link_to "Create a New Article", new_article_path, class: "new_article" %>
我的show.html.erb看起来像这样。
<h1><%= @article.title %></h1>
<p><%= @article.body %></p>
<%= link_to "<< Back to Articles List", articles_path %>
相当困在这里,无法弄明白。我还注意到另一个问题。起初我忘记了
@article = Article.find(params[:id])
我被这个错误所困扰,我猜想在我弄清楚第一个问题后会回来。
文章中的NoMethodError#show show.html.erb第1行引出:
未定义的方法`标题&#39;为零:NilClass
我已经查到了类似的问题,但他们似乎都比我更深入了解这个项目并谈论私人方法,我不认为我还在处理。我发布了这两个问题,因为我不确定它们是否相关。任何建议都会帮助我,因为这真的让我失望。感谢。
答案 0 :(得分:1)
根据您显示的代码,如果链接出现在您的索引页面上,则应该无法发生,那么您的show方法应该能够找到它。
也许你的索引页面已经过时,或者使用了一些不再有效的缓存。尝试重新加载页面,或重新启动服务器(如果这样做,请确保运行spring stop
以便完全重启),我也会运行rake tmp:clear
清除缓存,以防万一
答案 1 :(得分:0)
我在udemy课程中遇到了同样的错误,我在重定向路径时没有添加复数形式的文章。我打字了
<强> article_path(物品)强>
而不是
<强> articles_path(物品)强>
我希望这有助于某人。