ruby-on-rails:在列表中的每个项目上呈现部分内容

前端之家收集整理的这篇文章主要介绍了ruby-on-rails:在列表中的每个项目上呈现部分内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在视图(.html.erb)中有以下内容
<% @posts = GetAllPostsFunctions %>   (removed for berivity)

<% @posts.each do |post| %>
<%=  post.title %>

<%= render :partial => "posts/post_show" %>
<% end %>

posts_show部分具有以下内容

....
<td><%=h @post.title %> </td>

但是我收到以下错误

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.title

有任何想法吗?

解决方法

由于每个循环中的post变量是一个locale变量,因此必须使其可用于partial:
<%= render :partial => "posts/post_show",:locals => {:post => post} %>

然后,您可以通过本地变量帖子访问标题

<td><%=h post.title %> </td>

您还可以通过将帖子呈现为集合来简化整个过程.有关更多信息,请查看Rails文档:

http://api.rubyonrails.org/classes/ActionController/Base.html#M000658

猜你在找的Ruby相关文章