[英]Why do I get the error 'undefined method `each' for nil:NilClass' in Ruby on Rails?
我是RoR的新手,我将不胜感激!
我的“索引”文件中有此代码块,但我想将其移动到“应用程序”文件中,以便它出现在每个页面的导航中:
<ul class="blogs">
<% @blogs.each do |blog| %>
<li>
<%= link_to blog.name, blog.url, { :target => 'main-iframe'} %>
<%= link_to 'Edit', edit_blog_path(blog) %>
</li>
<% end %>
</ul>
<%= link_to 'New Blog', new_blog_path %>
这可以正常工作并正确显示。 但是,“编辑”和“新博客”链接根本不再起作用,它们将我带到下面的错误页面(请注意,当它们位于索引页面时,这些链接可以正常工作):
Blogs中的NoMethodError
nil:NilClass的未定义方法“ each”
具体问题是这一行:
<% @blogs.each do |blog| %>
该URL仍然是正确的(/ blogs / new),但该行似乎阻止了此页面上的某些内容。
在我的blogs_controller.rb页面中(除了其他几件事之外):
def index
@blogs = Blog.all
end
def new
@blog = Blog.new
end
def edit
end
有人可以帮我吗?
谢谢
如果要在多个页面上显示此内容,则应创建一个before过滤器:
before_filter :load_blogs
def load_blogs
@blogs = Blog.all
end
def index
end
一些说明:
.all
可能会使您的应用膨胀 因为在新操作中,@ blogs为零。 你可以试试
def new
@blogs = Blog.all
@blog = Blog.new
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.