我有两个下拉列表。一个包含项目bmp_id
的子列表和一个包含项目的子列表bmp_id
(在本例中为 2),每个项目都有一个唯一的bmpsublist_id
. 主下拉列表中的选项之一包括五个带有bmpsublist_id
[3, 4, 5, 6] 的子列表选项。我想让它使用户只能拥有一个bmpsublist_id
带有[4、5 和 6] 的子列表选项,它bmpsublist_id
不应该是唯一的,并且无论是否添加了其他选项都可以添加。当您提交表单时,bmp_id
和bmpsublist_id
被添加到名为 Bmp 的表中。
这是我在模型中使用的验证:
validates_uniqueness_of :bmp_id, :message => "TODO", if: "bmpsublist_id == 4 || bmpsublist_id == 5 || bmpsublist_id == 6 || bmpsublist_id == 7"
此验证的问题是,如果您首先添加带有bmpsublist_id
3 的选项,则您不能再添加带有bmpsublist_id
4、5 和 6 的选项,即使bmpsublist_id
已经有 3的记录,我仍然希望能够添加这些选项被添加。但是,如果您添加bmpsublist_id
4、5 或 6 的其中之一,您仍然可以添加我不想更改的 3。
有任何想法吗?对不起,如果这超级混乱。我真的不知道如何很好地解释事情。
更新:
我想通了,答案在下面