在与原始视图不同的视图中显示表格



如何在计划视图中显示员工不可用表?

当我为员工创建计划时,我希望在我的计划模型视图中查看我的员工不可用表。

<div class="col-lg-6 col-sm-12 right">
<% @non_availabilities = NonAvailability.all %>
<table class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th class="col-md-2">Employee</th>
<th class="col-md-2">Date</th>
<th class="col-md-2">Time</th>
<th class="col-md-2">Reason</th>
</tr>
</thead>
<tbody>
<% @non_availabilities.each do |non_availability| %>
<tr>
<td class="col-md-2"><%= non_availability.employee.full_name %></td>
<td class="col-md-2"><%= non_availability.date %></td>
<td class="col-md-2"><%= non_availability.time %></td>
<td class="col-md-2"><%= non_availability.reason %></td></tr>
<% end %>
</tbody>
</table>
</div>

这是我的问题的一个非常简单的答案。要在不同的模型视图上显示模型的表,我所需要的只是以下内容。

<% @employees.each do |employee| %>
<%= employee.name %>
<%= employee.position %>
<% end %>

假设您的员工表是一个名为Employee的模型,您的日程安排表单是一个名为Schedule的模型。

如果要在schedules显示视图(或任何其他视图,如索引(中列出所有员工,可以使用如下所示的内容:

class SchedulesController < ApplicationController
def show
@employees = Employee.all
end
end

在"Employee.rb"(模型(中:belongs_to :schedule

在"Schedule.rb"(模型(中:has_many :employees

在你的shedules节目中.html.erb:

<% @employees.each do |employee| %>
<p><%= employee.name %></p>
<p><%= employee.position %></p>
<% end %>

@Jake的答案是正确的,只是有一个警告。

假设您将计划定义为两周的名单,因此关系将变为多对多(而不是belongs_to(,并且您将需要一个联接表。

在"Schedule.rb"(模型(中:has_and_belongs_to_many :employes在"Employee.rb"(模型(中:has_and_belongs_to_many :schedules

上周我遇到了类似的问题,这个答案很有帮助: 在 Rails 中创建多对多关系

最新更新