0

在 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 时发生错误”

我怎样才能做到这一点?谢谢

4

1 回答 1

2

当您尝试调用未定义对象的方法时,会触发 NoMethodError。换句话说,您在其他视图中呈现帖子/索引,但 @posts 实例变量未在其他视图中定义。渲染模板不路由控制器。

于 2012-05-02T01:04:58.733 回答