validates_one_of

elm*_*lmt 4 activerecord ruby-on-rails

我有一个表,其中包含一个布尔值的列.我希望只有一行可以将该布尔值设为true.rails支持这样的功能吗?

我正在寻找以下内容:

Table  
id | bool_value
1  | false
2  | false
3  | true
4  | false
Run Code Online (Sandbox Code Playgroud)

Geo*_*tte 9

你可以这样做,这只会验证enabled设置为的唯一性,true并忽略其他情况(nilfalse),因为nil == false:

validates_uniqueness_of :enabled, :if => :enabled
Run Code Online (Sandbox Code Playgroud)

这应该涵盖所有情况.

希望这可以帮助!