我正在使用 Ancestry 在 Rails 中构建一个分层类别,并且我允许用户选择他们正在创建的对象的父级。我使用下拉列表显示现有类别:
<%= 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 配置,或者这可能是表单验证器过度保护?