Ruby on rails RubyonRails:每个都可以在空数组中循环吗?

Ruby on rails RubyonRails:每个都可以在空数组中循环吗?,ruby-on-rails,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3.2,我一直在第14行得到nil:NilClass的错误未定义方法“comments”。这是有问题的代码 <li> <span class="content"><%= micropost.content %></span> <span class="timestamp"> Posted <%= time_ago_in_words(micropost.created_at) %> ago. </span&g

我一直在第14行得到nil:NilClass的错误未定义方法“comments”。这是有问题的代码

<li>
  <span class="content"><%= micropost.content %></span>
  <span class="timestamp">
    Posted <%= time_ago_in_words(micropost.created_at) %> ago.
  </span>
  <% if current_user?(micropost.user) %>
    <%= link_to "delete", micropost, method:  :delete,
                                     confirm: "You sure?",
                                     title:   micropost.content %>
  <% end %>

  <h2>Comments</h2>

    <% @micropost.comments.each do |comment| %>
      <p>
        <b>Commenter:</b>
        <%= comment.commenter %>
      </p>

      <p>
        <b>Comment:</b>
        <%= comment.body %>
      </p>
    <% end %>


  <h3>Add a comment:</h3>
  <%= form_for([micropost, micropost.comments.build]) do |f| %>
    <div class="field">
      <%= f.label :commenter %><br />
      <%= f.text_field :commenter %>
    </div>
    <div class="field">
      <%= f.label :body %><br />
      <%= f.text_area :body %>
    </div>
    <div class="actions">
      <%= f.submit %>
    </div>
  <% end %>
</li>

它的作用就像无法通过注释数组调用循环,因为它是空的。我尝试在第13行添加,这样如果没有注释,它就不会尝试循环,但在第13行我得到了完全相同的错误。我的语法错了吗?

将@micropost替换为micropost

将@micropost替换为micropost

是的,每个都会迭代一个空数组,因为它是空的,所以不会真正迭代。

是的,每个都会迭代一个空数组,因为它是空的,你把@micropost和micropost混合在一起,这是两个完全不同的变量。要回答你的标题问题,是的,你可以在一个空数组中循环,在irb:[]中尝试。每个{{项{项}放置项}=>[]都不会在本教程的第7.4节中重复。当我这样做时,我在第14行得到这个错误:SQLite3::SQLException:没有这样的列:comments.micropost_id:SELECT comments.*FROM comments,其中comments.micropost_id=2@BigBoy1337:我想我们是在一个局部变量中。a开头是正确的,你把@MicroPot和MicroPot混合在一起,这是两个完全不同的变量。要回答你的标题问题,是的,你可以在一个空数组中循环,在irb:[]中尝试。每个{{项{项}放置项}=>[]都不会在本教程的第7.4节中重复。当我这样做时,我在第14行得到这个错误:SQLite3::SQLException:没有这样的列:comments.micropost_id:SELECT comments.*FROM comments,其中comments.micropost_id=2@BigBoy1337当前位置我想我们在一个局部区域内。