验证Rails中两个属性的数字唯一性

时间:2015-04-25 22:36:13

标签: ruby-on-rails validation ruby-on-rails-4 activerecord unique

我有一个模型Track,它有两个属性:

disc表示该曲目所属的光盘,number表示该曲目上曲目的数字顺序。

我想验证曲目编号的唯一性,即每张光盘只能有一个唯一的曲目编号。因此,例如在光盘1(或光盘2)上,只能有一个曲目number为1的曲目。

在Rails'中是否存在预先存在的方法。唯一性验证,其中一个属性依赖于另一个属性?如果不是,那么编写自定义验证的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用stack new_stack(void) { struct stack_t* new = malloc(sizeof(struct stack_t)); new->count = 0; new->head = NULL; return new; }

尝试使用validates_uniqueness_of
scope

顺便说一句,在数据库级别,您还应该使用validates_uniqueness_of :number, scope: [:disc, album_id] 验证它:

unique index

或使用提供复合主键功能的gem。