Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何通过合并操作的结果使字段唯一?_Ruby On Rails_Ruby On Rails 3_Activerecord_Arel_Activemodel - Fatal编程技术网

Ruby on rails 如何通过合并操作的结果使字段唯一?

Ruby on rails 如何通过合并操作的结果使字段唯一?,ruby-on-rails,ruby-on-rails-3,activerecord,arel,activemodel,Ruby On Rails,Ruby On Rails 3,Activerecord,Arel,Activemodel,全名不能唯一,但显示名称必须唯一。如果我想使用完整的\u名称作为后备,但我仍然想检查显示\u名称的唯一性 验证合并唯一性(显示名称、全名)的最干净方法是什么?或实现相同效果所需的任何方法?这可能是您想要的,如果不是,请进一步解释合并 验证:显示\u名称,唯一性=>true 更新 在评论中附加信息之后 class Person validates :full_name, presence: true validates :display_name, unique: ??? attr_a

全名不能唯一,但显示名称必须唯一。如果我想使用完整的\u名称作为后备,但我仍然想检查显示\u名称的唯一性


验证合并唯一性(显示名称、全名)的最干净方法是什么?或实现相同效果所需的任何方法?

这可能是您想要的,如果不是,请进一步解释合并
验证:显示\u名称,唯一性=>true

更新

在评论中附加信息之后

class Person
  validates :full_name, presence: true
  validates :display_name, unique: ???
  attr_acessible :full_name, :display_name
end
如果这不符合您的要求,那么

validates :display_name, :uniqueness => {:scope => :full_name}

如果有人不知道我所说的
COALESCE
是什么意思,它与MSSQL上的
NULLIF
和Oracle上的
NVL
相同,或者与C#中的
、CoffeeScript中的
或JavaScript和Ruby等大多数动态类型语言中的
一样。
validates :coalesce

def coalesce
  #put your validation in the method here i.e
  if self.display_name == false
    #then check full_name etc.
  end
end