我是初学者,我正在尝试在我的图书索引视图中显示与图书相关联的标记名称(通过标记)。问题是,出于某种原因,我在运行时得到undefined method "tags" for nil:NilClass
:
<% for book in @books %>
<div id="book">
<div class="bookHeader">
<h5 class="bookTitle"><%= link_to book.title, book %></h5>
<div class="bookTags">
<ul class="tags">
<li>
<% for tag in @book.tags %>
<%= link_to @tag.name %>
<% end %>
</li>
</ul>
...
<% end %>
在索引文件中我有:
def index
@books = Book.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @books }
end
end
在控制台中,它显示我有相关的标签:
>> @book = Book.find(12)
>> @book.tags.count
>> 3
现在我想知道我是否需要构建一个声明,如果这些书有标签或类似的东西。有人有主意吗?如果我需要提供更多代码,请告诉我。
答案 0 :(得分:1)
您的代码存在的问题是您<% for tag in @book.tags %>
,@book
不存在。你需要的是<% for tag in book.tags %>
。