简短:如何拦截 form_for 选择的值以修改提交时发送到服务器的值?
完整版:我在一个具有 ext_id 属性的对象的部分内部有一个 form_for(它是脚手架生成的默认 _form 部分)。
我对其进行了如下修改:表单中有 2 个选择(A 和 B)。B 默认隐藏。A 只能是真或假。如果 A 为真,则必须将 ext_id 设置为默认值 X。如果用户在 A 上选择假,则会出现 B,然后根据 B 值设置 ext_id(我为此使用了 jQuery)。
现在的问题是:如果表单用于创建,如果 A 为假,则 ext_id 设置为 B 值,如果 A 为真,则未设置。我想如果在这种情况下未设置,我想我可以使用某种 ActiveRecord 验证将其设置为默认值,但是,如果它被用于编辑并且我将 A 更改为隐藏 B,B 旧值仍然被选中,所以 ext_id永远不会更改为“未设置”。