在rails中,如何验证非唯一性字段?

Vic*_*Lam 0 validation ruby-on-rails validates-uniqueness-of

我可以进行与validates_uniqueness_of完全相反的验证吗?即我想在数据库中不存在用户输入时显示错误消息.

谢谢大家.:)

Sal*_*lil 5

不,你必须像以下一样写自己的.

class Message < ActiveRecord::Base

def validate
  message=Message.find_by_name(self.name)
  self.errors.add :base, "Name must be present" if message.blank?
end


end
Run Code Online (Sandbox Code Playgroud)

@ x1a4评论后编辑

def validate
  self.errors.add :base, "Name must be present" unless Message.exists?(:name => self.name)
end
Run Code Online (Sandbox Code Playgroud)

  • 更清洁的是`message = Message.exists?(:name => self.name)`因为你没有对消息实例做任何事情. (3认同)