Rails: как отобразить все связанные записи из таблицы B на основе каждой записи из таблицы A

Если вы используете IPython, вам нужно ввести «foo ??»

In [19]: foo??
Signature: foo(arg1, arg2)
Source:
def foo(arg1,arg2):
    #do something with args
    a = arg1 + arg2
    return a

File:      ~/Desktop/<ipython-input-18-3174e3126506>
Type:      function
1
задан Javier Menéndez Rizo 20 January 2019 в 07:49
поделиться

1 ответ

То, что у вас есть, это отношение один ко многим. Это можно реализовать с помощью ассоциаций Active Record https://guides.rubyonrails.org/association_basics.html .

Например, ваша таблица A может быть моделью Автор, а ваша таблица 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>
0
ответ дан Javier Menéndez Rizo 20 January 2019 в 07:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: