为什么索引视图打印整个 table?

Why is Index view printing entire table?

此应用包含一个要提交的表单,目前我正在尝试打印 table 的几行。这是有效的,但不幸的是我也得到了整个数据库 table 属性的一个长字符串。我编写的代码(我相信)中没有任何内容会导致这种情况。我担心这是一些看不见的 rails 魔法,任何见解都会很棒!

控制器:

class StudentsController < ApplicationController
  def new
    @student = Student.new
  end

  def create
     student_map = {"student_id" => params[:student_id], "student_name" => params[:student_name],
  "major" => params[:major], "minor" => params[:minor], "other_information" => params[:other_information], 
  "class_year_id" => params[:class_year_id], "hours_st" => params[:hours], "qr_id" => qr_id,}

     if (newStudentRow.save)
        redirect_to action: 'index'
     else
        render action: 'new'
     end
  end

  def index
     @students = Student.all
  end
end

索引视图:

<h1>Students#index</h1>
<p>Find me in app/views/students/index.html.erb</p>

<table>
    <thead>
        <tr>
            <th>Student Name</th>
            <th>ID</th>
        </tr>
    </thead>
    <tbody>
    <%= @students.each do |s| %>
        <tr>
        <td><%= s.student_name %></td>
        <td><%= s.student_id %></td>
    </tr>
    </tbody>
    <% end %>
</table>

输入数据并提交表单后,此 link 显示以下输出:

感谢您的帮助!

变化:

<%= @students.each do |s| %>

为此:

<% @students.each do |s| %>

在 Ruby 中,each 为每个元素和 returns 数组执行块。让 = 输出数组,这就是为什么你会看到那个长字符串。