循环部分
Looping through a partial
我正在创建一个博客,并在索引上循环浏览每篇文章的部分内容,这样我就可以显示没有评论部分的 post,它看起来像这样:
<% render partial: 'view_post_only', collection: @articles %>
将您带到部分 _view_post_only:
<h1><%= link_to @article.title, article_path %></h1>
<p>
Written by <%= link_to @article.author.username, author_path(@article.author_id), class: "article-listing" %>
</p>
<% if @article.image.exists? %>
<p><%= image_tag @article.image.url %></p>
<% end %>
<p class="article-body"><%= @article.body %></p>
我在 view_post_only 的第一行收到此错误:
No route matches {:action=>"show", :controller=>"articles"} missing required keys: [:id]
最后,包含在我的 routes.db 中的是:
resources :articles do
resources :comments
end
要解决您的第一个错误,请更改:
<h1><%= link_to @article.title, article_path %></h1>
收件人:
<h1><%= link_to @article.title, article_path(@article) %></h1>
article_path
帮助程序需要您尝试 link 的资源实例,以便它知道去哪里。
此外,每个 "articles" 的实例都没有保存在 @article
变量中。按照惯例 rails 将单数化部分名称并为您提供访问该项目的方法。在这种情况下,约定将产生一个名为 view_post_only
的方法(我认为)。因此,您可以在模板中将 @article
替换为 view_post_only
。像这样:
<h1><%= link_to view_post_only.title, article_path(view_post_only) %></h1>
这个约定在这种情况下似乎不太适用。为了让你的部分阅读更好,我会明确说明你想给这个项目起什么名字:
<% render partial: 'view_post_only', collection: @articles, as: :article %>
然后在 _view_post_only
.
中将您对 @article
的引用替换为 article
我正在创建一个博客,并在索引上循环浏览每篇文章的部分内容,这样我就可以显示没有评论部分的 post,它看起来像这样:
<% render partial: 'view_post_only', collection: @articles %>
将您带到部分 _view_post_only:
<h1><%= link_to @article.title, article_path %></h1>
<p>
Written by <%= link_to @article.author.username, author_path(@article.author_id), class: "article-listing" %>
</p>
<% if @article.image.exists? %>
<p><%= image_tag @article.image.url %></p>
<% end %>
<p class="article-body"><%= @article.body %></p>
我在 view_post_only 的第一行收到此错误:
No route matches {:action=>"show", :controller=>"articles"} missing required keys: [:id]
最后,包含在我的 routes.db 中的是:
resources :articles do
resources :comments
end
要解决您的第一个错误,请更改:
<h1><%= link_to @article.title, article_path %></h1>
收件人:
<h1><%= link_to @article.title, article_path(@article) %></h1>
article_path
帮助程序需要您尝试 link 的资源实例,以便它知道去哪里。
此外,每个 "articles" 的实例都没有保存在 @article
变量中。按照惯例 rails 将单数化部分名称并为您提供访问该项目的方法。在这种情况下,约定将产生一个名为 view_post_only
的方法(我认为)。因此,您可以在模板中将 @article
替换为 view_post_only
。像这样:
<h1><%= link_to view_post_only.title, article_path(view_post_only) %></h1>
这个约定在这种情况下似乎不太适用。为了让你的部分阅读更好,我会明确说明你想给这个项目起什么名字:
<% render partial: 'view_post_only', collection: @articles, as: :article %>
然后在 _view_post_only
.
@article
的引用替换为 article