Задать вопрос
@Morphine43
Техник АСУП

Ruby on rails: Как отобразить иерархический список?

В проекте необходимо создать вложенную иерархию категорий.
Миграция:
class CreateCategories < ActiveRecord::Migration
  def change
    create_table :categories do |t|
      t.string :title
      t.references :parent, index: true
      t.timestamps null: false
    end
  end
end

Соответственно модель:
class Category < ActiveRecord::Base
  has_many :subordinates, class_name: "Category",
           foreign_key: "parent_id"

  belongs_to :parent, class_name: "Category"


end


(материал взят отсюда)
Собственно вопрос: Каким образом проверить имеет ли категория подчиненных и, если да, то вывести их?
P.S. хотя бы пните в то место где про это прочитать для нуба
  • Вопрос задан
  • 285 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Code Basics
    Ruby для начинающих
    1 месяц
    Далее
  • Хекслет
    Разработчик на Ruby on Rails
    5 месяцев
    Далее
  • Skillbox
    Ruby on Rails с нуля
    10 месяцев
    Далее
Решения вопроса 1
@Morphine43 Автор вопроса
Техник АСУП
Отработал корректно следующий код:
<% if category.subordinates.count >=1 %>
          <%= category.subordinates.first.title %>
              <% end %>

соответственно subordinates содержит много объектов (исходя из связи has_many), а значит выражение category.subordinates.title некорректно (запрашиваем 1 title у множества объектов). Вывод: разбираем subordinates через each
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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