Я работаю над приложением Rails, которое использует categories
для items
.
Моя category
модель является самостоятельной, поэтому категории могут быть вложенными:
class Category < ActiveRecord::Base
has_many :items
# Self Join (categories can have subcategories)
has_many :subcategories, :class_name => "Category", :foreign_key => "parent_id"
belongs_to :parent, :class_name => "Category"
...
end
У меня есть форма, которая позволяет пользователю создать item
, который в настоящее время перечисляет все категории в выборке, но все они перечислены вместе:
<%= f.label :category_id %>
<%= select :item, :category_id, Category.all.collect {|c| [ c.title, c.id ]} %>
Итак, выбор выглядит примерно так:
Category1
Category2
Category3BelongsTo2
Category4BelongsTo1
Но я хочу:
Category1
- Category4BelongsTo1
Category2
- Category3BelongsTo2
Есть ли для этого помощник (что было бы здорово!)? Если нет, то как мне это сделать?
Спасибо!