我有3个模型,
文章
belongs_to :category
belongs_to :author
作者
has_many :articles
has_many :categories, through: :articles
类别
has_many :articles
has_many :authors, through: :articles
这就是我想做的
author / show.html.erb
<h5>Recent Articles</h5>
<table>
<thead>
<tr>
<th>Judul Artikel</th>
<th>Kategori</th>
</tr>
</thead>
<tbody>
<% Article.all.each do |author| %>
<tr>
<td><%= author.judul_artikel %></td>
<td><%= author.category.nama_kategori %></td>
</tr>
<% end %>
</tbody>
</table>
我想做的是在表中显示author / id时,仅显示存在ID的类别和文章。
我不知道如何在这里使用查询
答案 0 :(得分:0)
假设您想要的是与该作者相关的文章:
使用Hash conditions,您可以将“文章”模型更好地划分为与作者相关的文章:
<% Article.where(author_id: @author.id).each do |author| %>
<tr>
<td><%= author.judul_artikel %></td>
<td><%= author.category.nama_kategori %></td>
</tr>
<% end %>
但是有更好的解决方案。由于您使用的是show
操作,因此应该传递一个实例变量(例如@author
)。然后可以将其关联方法用作对象@author.articles
:
<% @author.articles.each do |author| %>
<tr>
<td><%= author.judul_artikel %></td>
<td><%= author.category.nama_kategori %></td>
</tr>
<% end %>
答案 1 :(得分:0)
您可以尝试以下操作
<% @author.articles.each do |article| %>
<tr>
<td><%= article.judul_artikel %></td>
<td><%= article.category.nama_kategori %></td>
</tr>
<% end %>