我有条件属性的动态表单。
E.g。如果选中单选按钮“condition1”,则“price”字段通过jQuery动态隐藏,并显示“percentage”字段。
假设我使用“condition1”单选框创建了记录并设置了“百分比”值。然后,我决定更新记录,并禁用“condition1”,因此百分比字段隐藏,并为“价格”设置新值。
问题是,如果我禁用“condition1”,“百分比”参数仍然存在,我需要的是“价格”或“百分比”参数。我可以在点击时使用jQuery removeAttribute(),但这是糟糕的用户体验,因为在某些领域我有多行textareas,如果他们不小心点击了单选按钮,我不想强迫用户再次写入。
我试过玩ActiveModel :: Dirty没有运气
在对象控制器的编辑操作中
if @object.condition_changed? && @object.condition_was == "condition1"
@object.attribute(:percentage, nil)
end
答案 0 :(得分:0)
您可以运行像
之类的更新后回调after_update: set_nil_to_unrequired_field
def set_nil_to_unrequired_field
update_column('your field ', nil) if "other field is present"
end