如果其父级具有特定值的字段,则尝试找出清除嵌套模型的最佳方法。
我有模型Company
、Person
和Role
。一个公司has_many people
和一个人可以是承包商,这由people
表中设置的 bool 值确定,通过以下单选按钮设置:
<%= f.input :contractor, as: :radio_buttons, label: 'Is this person a contractor?', input_html: { class: 'entity_tf form-control rtf radio radio-false' } %>
现在,如果用户在 View 中单击"is",则会向用户显示一个按钮,用户可以使用该按钮添加动态 cocoon 字段,并列出该个人承包商所具有的角色。
我的问题是:
假设添加了一堆角色后,用户突然意识到他正在编辑的人实际上不是承包商(或类似的东西),并决定将单选按钮更改为“否”。按照我的设置方式, radio 场将被简单地隐藏起来。这意味着它们将在提交表格时保存。 如果单选按钮设置为 false,提交表单后如何最好地删除它们?我正在考虑向模型添加一些条件/验证。
感谢您的任何想法。
最佳答案
使用 callback在您的 Person 模型中。
after_save :remove_all_roles, unless: :is_a_contractor_bool?
def remove_all_roles
self.roles.delete(self.roles)
end
关于jquery - 如果父级具有特定值的字段,则清除所有嵌套模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31531438/