列出与书籍相关联的部分

lsmepo6l  于 2022-10-15  发布在  Ruby
关注(0)|答案(2)|浏览(234)

我是Ruby on rails的新手,这一直是一个有趣的问题,因为这似乎很容易在其他语言中实现,但我不知道如何在这一语言中解决它。还有一篇类似的帖子,但它有两种不同的模式,我想避免。
这是我的最终目标:

节名称

  • A册,作者
  • B册,作者
    节名称
  • C册,作者
  • D册,作者

理想情况下,我希望书籍是一个模型,所以我的模型是这样的:

图书模式

  1. class Book < ApplicationRecord
  2. validates :section, :title, :author, presence: true

账簿管理员

  1. def index
  2. @books = Book.all

我想我需要某种视图,让它像下面这样列出,但我不确定如何从那里开始。

  1. <% @sections.each do |section| %>
  2. <% Book.each do |book| %>
  3. <%= book.name %>
  4. <% end %>
  5. <% end %>

如有任何帮助,将不胜感激!

t40tm48m

t40tm48m1#

首先,您需要在这些模型之间进行迁移和关联

  1. change_table :books do |t|
  2. t.belongs_to :section, foreign_key: true, null: false
  3. end
  1. class Book < ApplicationRecord
  2. belongs_to :section
  3. class Section < ApplicationRecord
  4. has_many :books, dependent: :destroy

在视图中,您可以遍历章节,并分别遍历每个章节的书籍

  1. <% @sections.each do |section| %>
  2. <div><b><%= section.name %></b></div>
  3. <ul>
  4. <% section.books.each do |book| %>
  5. <li>
  6. <%= book.name %>, <%= book.author %>
  7. </li>
  8. <% end %>
  9. </ul>
  10. <% end %>
展开查看全部
gev0vcfq

gev0vcfq2#

您需要的是:

  1. <% @sections.each do |section| %>
  2. <% section.books.each do |book| %>
  3. <%= book.name %>
  4. <% end %>
  5. <% end %>

相关问题