在Rails应用程序中,我有一个视图index.html.erb和一个控制器posts_controller.rb。 在控制器中我定义了一个变量:
def index
@posts = TableName.find...
在视图中我有:
<% @posts.each do |post| %>
如果我通过localhost / posts / index访问它,它可以正常工作。但我真正想要的是在其他视图中显示此视图,因此我使用<%= render :template => 'posts/index' %>
但是我收到此错误消息:“NoMethodError - 当您没有预料到时,您有一个nil对象!您可能已经预料到了一个Array的实例。在评估nil.each“
我该怎么做?感谢
答案 0 :(得分:2)
尝试在未定义对象上调用方法时会触发NoMethodError。换句话说,您在其他视图中呈现posts / index,但在另一个视图中未定义@posts实例变量。渲染模板不会路由控制器。