Ruby on Rails:为什么当我遍历每个 child 的内容时打印出来?

Ruby on Rails: why does the content of each child print out when I iterate over them?

我有以下型号:

class Question < ActiveRecord::Base
    has_many :ratings
end

class Rating < ActiveRecord::Base
  belongs_to :question
end

我在问题的 show.html.erb 文件中也有以下代码:

<p id="notice"><%= notice %></p>

<p>
  <strong>Name:</strong>
  <%= @question.name %>
</p>

<% if @ratings.blank? %>
    <p>There are no ratings for this question.</p>
<% else %>
    <ul>
        <%= @ratings.each do |rating| %>
            <li>
                <%= rating.name %>
                <%= link_to "Show", rating %>
            </li>
        <% end %>
    </ul>
<% end %>
<%= link_to 'Edit', edit_question_path(@question) %> |
<%= link_to 'Back', questions_path %>

相关questions_controller.rb条目如下:

def show
  @question = Question.find(params[:id])
  @ratings = Rating.where(question_id: @question.id)
  respond_with(@question)
end

我一辈子都看不懂为什么输出包含 child objects 的内容,以及我在迭代中创建的无序列表项.有什么想法吗?

尝试删除此行中的 =<%= @ratings.each do |rating| %>

在每个循环中使用 - but =

- @pages.each do |x|
 p = x.id
 p = x.xx

这就是你想要的。

此外,我建议您使用 slim 来代替 erb。