Я использую Rails 3.0.7 с awesome_nested_set и пытаюсь создать вложенную форму, которая позволит мне вводить категорию и подкатегории в одной форме создания.
Вот моя категория модели, контроллера и формы
category.rb
class Category < ActiveRecord::Base
acts_as_nested_set
end
categories_controller.rb
class CategoriesController < InheritedResources::Base
def new
@category = Category.new
3.times { @category.children.build(:name => "test") }
end
end
форма
= form_for @category do |f|
-if @category.errors.any?
#error_explanation
%h2= "#{pluralize(@category.errors.count, "error")} prohibited this category from being saved:"
%ul
- @category.errors.full_messages.each do |msg|
%li= msg
.field
= f.label :name
= f.text_field :name
%p Sub categories
= f.fields_for :children do |child|
= child.text_field :name
.actions
= f.submit 'Save'
Проблема здесь в том, что в моей форме только одна подкатегория, и ей не присвоено имя «test», поэтому я не верю, что это на самом деле дочерний элемент категории, показанной здесь.
Что мне здесь не хватает?
Можно ли это сделать?
Есть ли более простой способ?
Обновление
Если я изменю свою форму на следующую, то она отображает три подкатегории, каждая из которых имеет имя «test». Это не сохранит правильно, хотя.
%p Sub categories
- @category.children.each do |sub|
= f.fields_for sub do |child|
= child.label :name
= child.text_field :name
%br