Я создаю иерархическую категорию в Rails, используя Ancestry, и разрешаю пользователю выбирать родителя объекта, который они создают. Я отображаю существующие категории в раскрывающемся списке:
<%= f.input :ancestry, collection: Category.sorted_list %>
Пока пользователь выбирает существующий узел, все в порядке. Если пользователь выберет пустое поле в раскрывающемся списке, я ожидаю, что Ancestry создаст корневой узел, но вместо этого форма выдает ошибку «недействительно».
Мой контроллер не делает ничего потрясающего:
def update
@category = Category.find(params[:id])
respond_to do |format|
if @category.update_attributes(params[:category])
format.html { redirect_to @category, notice: 'Category was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @category.errors, status: :unprocessable_entity }
end
end
end
Я новичок в Rails, поэтому не знаю, как решить эту проблему. Есть ли конфигурация для Ancestry, которую я пропустил, или, возможно, это средство проверки формы чрезмерно защищает?