我有两个表A和B。A包含日期,B包含说明以及A_id列。表A和B具有一对多关联。
Table A
---------------
id | datecol
----+----------
1 | 03/01/2019
2 | 02/01/2019
3 | 01/01/2019
Table B
id | description | A_id
-----+-----------------+------
1 | GK1_02/02/2019 | 2
2 | GK3_01/01/2019 | 3
3 | GK2_01/01/2019 | 3
4 | GK1_01/01/2019 | 3
5 | GK1_01/01/2019 | 1
在我的rails模板中,我想显示如下条目:
01/01/2019
. GK1_01/01/2019
02/01/2019
. GK1_02/02/2019
03/01/2019
. GK1_02/02/2019
. GK2_02/02/2019
. GK3_02/02/2019
所以基本上,我想为A中的每个条目显示B的所有相关记录。
有人可以协助我实施它吗?
答案 0 :(得分:0)
您拥有的是一对多关系。您可以使用Active Record关联https://guides.rubyonrails.org/association_basics.html来实现。
例如,您的表A可以是Author模型,而表B可以是Book模型
class Author < ApplicationRecord
has_many :books, dependent: :destroy
end
class Book < ApplicationRecord
belongs_to :author
end
因此您的控制器可以搜索您的作者
class CatalogController < ApplicationController
def list
@authors = Author.all
end
end
您认为遍历作者及其书籍(A.datecol为Author.name,B.description为Book.title)
<ul>
<% @authors.each do |author| %>
<li><span><%= author.name %></span>
<ul>
<% author.books.each do |book| %>
<li><%= book.title %></li>
<% end %>
</ul>
</li>
<% end %>
</ul>