短い: form_for select の値をインターセプトして、送信時にサーバーに送信される値を変更するにはどうすればよいですか?
フルバージョン: ext_id 属性を持つオブジェクトのパーシャル内に form_for があります (これは、scaffold によって生成されるデフォルトの _form パーシャルです)。
次のように変更しました。フォームには 2 つの選択 (A と B) があります。B はデフォルトで非表示になっています。A は true または false のみです。A が true の場合、ext_id はデフォルト値 X に設定する必要があります。ユーザーが A で false を選択すると、B が表示され、B の値に従って ext_id が設定されます (そのために jQuery を使用しました)。
問題は次のとおりです。フォームが作成に使用される場合、A が false の場合は ext_id が B 値に設定され、A が true の場合は設定解除されます。この場合、設定されていない場合は、何らかの ActiveRecord 検証を使用してデフォルト値に設定できると思いますが、編集に使用されていて、A を変更して B を非表示にすると、B の古い値がまだ選択されているため、ext_id 「未設定」に変更されることはありません。