ruby-on-rails - 我在 Ruby on Rails 网站项目中找不到打印的来源。数组草草地打印在它显示的表格上方
问题描述
看起来像这样。正在打印的信息来自它下面的表格创建,我只是无法找到如何在不停止打印表格的情况下停止它。
这是相关代码。
我的项目文件的索引视图
<div class="jumbotron jumbotron-fluid bg-primary">
<div class="container">
<h1 class="display-4">Hochschule München Student Projects</h1>
<p class="lead">This website holds all the student led projects along with information about each of them.</p>
</div>
</div>
<div class="jumbotron jumbotron-fluid bg-primary">
<div class="container">
<h1 class="display-4">Hochschule München Student Projects</h1>
<p class="lead">This website holds all the student led projects along with information about each of them.</p>
</div>
</div>
<h1>Listing projects</h1>
<br>
Filter by Professor
<%= collection_select(:project, :project_professor, Project.all.select(:project_professor).uniq, :project_professor, :project_professor, prompt: true) %>
<br>
<table border="1">
<tr>
<th><%= sortable "project_title", "Project Title" %></th>
<th><%= sortable "project_professor", "Professor" %></th>
<th><%= sortable "project_partner", "Partner" %></th>
<th></th>
<th></th>
<th></th>
</tr>
<%= @projects.each do |project| %>
<tr>
<td><%= project.project_title %></td>
<td><%= project.project_professor%></td>
<td><%= project.project_partner%></td>
<td><%= link_to 'Show', project_path(project) %></td>
<td><%= link_to 'Edit', edit_project_path(project) %></td>
<td><%= link_to 'Destroy', project_path(project),
method: :delete,
data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br>
<%= link_to 'New project', new_project_path %>
这是控制器文件。
class ProjectsController < ApplicationController
helper_method :sort_column, :sort_direction
def index
@projects = Project.order(sort_column + " " + sort_direction); 0
end
def new
@project = Project.new
end
def create
@project = Project.new(project_params)
if @project.save
redirect_to @project
else
render 'new'
end
end
def edit
@project = Project.find(params[:id])
end
def update
@project = Project.find(params[:id])
if @project.update(project_params)
redirect_to @project
else
render 'edit'
end
end
def show
@project = Project.find(params[:id])
end
def destroy
@project = Project.find(params[:id])
@project.destroy
redirect_to projects_path
end
private
def project_params
params.require(:project).permit(:project_title, :project_semester, :project_partner, :project_professor, :project_format, :project_department, :project_description, :project_image, :project_link)
end
def sort_column
Project.column_names.include?(params[:sort]) ? params[:sort] : "project_title"
def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
end
end
谢谢你的帮助!我这几天一直有这个问题,找不到错误。
解决方案
<%= @projects.each do |project| %>
<tr>
<td><%= project.project_title %></td>
<td><%= project.project_professor%></td>
<td><%= project.project_partner%></td>
<td><%= link_to 'Show', project_path(project) %></td>
<td><%= link_to 'Edit', edit_project_path(project) %></td>
<td><%= link_to 'Destroy', project_path(project),
method: :delete,
data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
在 Erb 中,<%= 用于编写将产生输出的 ruby 代码,而 <% 用于编写不会产生输出的 ruby 代码,例如循环或条件。
尝试像这样编写循环,看看是否有帮助。
<% @projects.each do |project| %>
更多信息:https ://guides.rubyonrails.org/action_view_overview.html#erb
推荐阅读
- javascript - 在子对象键上对 javascript 对象数组进行排序
- apache-spark - 如何在 Spark 数据框中逐列或逐行验证大型 csv 文件
- angular - Angular Reactive Forms - FormArray 从另一个索引开始
- python - 在带有 Keras 的 Tensorflow 2.3 中使用具有多个嵌入输入的 GPU 时无法分配设备进行操作
- django - 通过多个页面重定向(登录->注册->登录)而不会丢失django第一页中url的下一个参数
- javascript - NodeJS - 在另一个类文件中访问数组
- python - 在python3中绘制streamplot太慢了
- python - 似乎无法从flask api(使用jsonify)读取react js(axios)中的错误消息
- python - 使用 PIL 和 numpy 加载和保存图像
- asp.net - ASP.net MVC 表排序器具有可单击的列标题但不排序