如何列出所有类别以及与每个类别相关的书

时间:2019-04-29 17:37:37

标签: ruby-on-rails activerecord

我需要一些帮助,我是Ruby on Rails的新手。我正在建立一个数字图书馆,我想列出数字图书馆的所有类别及其下每个类别的书籍。

我希望这样:

类别名称

  • A图书
  • B书

类别名称

  • C书
  • D书

类别和书籍之间的关系是

类别模型

class Category < ApplicationRecord
    has_many :books
end

图书模型

class Book < ApplicationRecord
  belongs_to :category
end

类别控制器

def index
  @category = Category.find(params[:id])
  @books = Book.all
end

类别视图

<% @categories.each do |category| %>
  <% Book.category.each do |book| %>
     <%= book.name %>
   <% end %>
<% end %>

我真的不知道该怎么办,我一直遇到错误。

请提供任何形式的支持,我们将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

类别控制器

def index
  @categories = Category.includes(:books).all
end

类别视图

<% @categories.each do |category| %>
  <%= category.name %>
    <% category.books.each do |book| %>
      <%= book.name %>
    <% end %>
<% end %>

带有链接的书名的类别视图

<% @categories.each do |category| %>
  <%= category.name %>
    <% category.books.each do |book| %>
      <%= link_to book.name, book %>
    <% end %>
<% end %>

N / B:(仅在您想添加到书名的链接时使用)