Получение NoMethodError, неопределенный метод для nil: NilClass - PullRequest
1 голос
/ 24 июля 2011

Я новичок и пытаюсь показать имена тегов, связанные с книгами (с помощью тегов), в моем представлении указателя книг. Проблема в том, что по какой-то причине я получаю 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

Теперь мне интересно, нужно ли мне создавать утверждение для того, есть ли в книгах теги или что-то в этом роде. У кого-нибудь есть идеи? Если мне нужно предоставить больше кода, дайте мне знать.

1 Ответ

1 голос
/ 24 июля 2011

Проблема в вашем коде в том, что у вас есть <% for tag in @book.tags %>, которого @book не существует.Что вам нужно, это <% for tag in book.tags %>.

...