私は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の構成はありますか、それともこれはフォームバリデーターが過度に保護されているのでしょうか?