gpt4 book ai didi

mysql - 如何从rails2.3中的2个表中检索和循环记录

转载 作者:行者123 更新时间:2023-11-30 01:20:02 24 4
gpt4 key购买 nike

我有一个运输表以及学生和员工表。在运输表中,我有一列 mem_id 和 mem_type、vehicle_id、date 等...我正在获取这样的日期的车辆记录..

@mem = []
@tran = Transport.find_all_by_month_and_vehicle(date,vehicle)
tran.each do |t|
@mem << Student.find_by_id(t.mem_id) if t.mem_type=="Student"
@mem<< Employee.find_by_id(t.mem_id) if t.mem_type=="Employee"
end

现在在 @mem 中,我正在获取学生和员工的记录...但在 View 文件中,我在表格中显示学生的姓名、年龄和 ID。

@mem.each do |m|
<tr>
<td><%= link_to m.first_name} %></td>
<td > <%= m.age %></td>
<td id="date"> </td>
<td id="vehicle">vehicle no</td>
</tr>
<%end%>

#date#vehicle_no中,我需要显示Transport表的相应记录vehicle_id和日期。我将如何实现它?我需要加入两个表吗?我不知道如何进行连接操作。或者我是否需要循环 @tran 并将其插入日期和车辆列?

最佳答案

如果您只需要这两列,我认为您不需要添加额外的联接,只需在数组中添加两列,您就可以在 Controller 中获得运输和车辆记录。

我假设您的“运输”模型中有“transport_date”,“车辆”模型中有“no”:

@mem = []
@tran = Transport.find_all_by_month_and_vehicle(date,vehicle)
tran.each do |t|
@mem << [Student.find_by_id(t.mem_id), t.transport_date, vehicle.no] if t.mem_type=="Student"
@mem << [Employee.find_by_id(t.mem_id), t.transport_date, vehicle.no] if t.mem_type=="Employee"
end

并更改您的 View :

@mem.each do |m|
<tr>
<td><%= link_to m[0].first_name} %></td>
<td > <%= m[0].age %></td>
<td id="date"> m[1] </td>
<td id="vehicle"> m[2] </td>
</tr>
<%end%>

我只是向您展示了一种简单的方法来做到这一点,我认为您的代码可以进一步优化。

关于mysql - 如何从rails2.3中的2个表中检索和循环记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18650234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com