新手问题 Rails Guides - <% @posts.each do |post| %> - undefined method `each' for nil:NilClass

n00b1 · 2013年10月25日 · 最后由 Shadow 回复于 2013年10月25日 · 4196 次阅读

从午饭前到现在,GG 了半天硬是不知道错在哪里的,@posts pass 到 view 里面的值是 nil...但怎么会呢?我对照着 Rails Guide 照着敲下来的啊

config/routes.rb很简单,就三行

Blog::Application.routes.draw do resources :posts root to: 'welcome#index' end

匿名 #1 2013年10月25日

试试 @post = Post.find(:all)

没看错的话,indexcontroller 外了。。 另外,如果有 index.html.erb,可以没有 对应的 action

#2 楼 @saiga 这位大哥什么意思,index.html.erb 放置位置有问题?我检查了下应该是对的吧,app/views/posts/index.html.erb

#4 楼 @n00b1 抱歉没描述清楚。我的意思是你的 index 方法定义到了 PostsController 外面了。show 方法下面多了一个 end了。

#5 楼 @saiga 我的天,我去撞墙算了...感谢 SAIGA

还有练眼力的帖子呢,遇到这种情况肯定是先在 action 里面将变量打印出来看看

15 行多了个 end

需要 登录 后方可回复, 如果你还没有账号请 注册新账号