[英]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.