だから私は次のコードを持っています:
def new
@all_areas = Area.all
@area = Area.new
end
all_areas を渡す理由は、フォームのドロップダウン ボックスに必要なためです。mongoid を使用すると、Area を別の Area に再帰的に埋め込むことができます。
私のフォームには次のコードがあります:
<% if @all_areas %>
<%= f.label :parent_area %>
<%= f.collection_select(:parent_area, @all_areas, :_id, :name, prompt: "Select a Parent...") %>
<% end %>
ただし、「無効な値、つまり空白の名前を送信すると、「新しい」ページは親を選択するための選択ボックスをレンダリングしません。
ここで何が起こっているのですか?これはバグですか?
私の作成アクションは非常に単純です。検証に失敗した場合は、次のことを行うだけです。
else
render 'new'
2 回目に @all_areas がビューに渡されないのはなぜですか? 作成アクションのコードを次のように変更して、実際に修正しました。
else
@all_areas = Area.all
render 'new'
しかし、私が何かを見逃していない限り、これは非常に驚くべきことですか?