0

我有一个用户表,在插入值之前,我需要检查用户是否已经存在,我该怎么做?谢谢!

4

2 回答 2

0

您可以使用exists?或者可能使用动态方法,例如find_or_create_by_....

于 2012-06-30T20:16:08.510 回答
0

需要检查用户是否已经存在

首先,您需要定义“用户已存在”的含义-> 电子邮件地址可能是唯一的?

http://guides.rubyonrails.org/active_record_validations_callbacks.html#uniqueness

class User < ActiveRecord::Base
  validates :email, :uniqueness => true
end

验证通过对模型的表执行 SQL 查询,在该属性中搜索具有相同值的现有记录来进行。它不会在数据库中创建唯一性约束。

与数据库中的唯一约束结合使用可能是您最好的选择;创建一个迁移

change_table :users do |t|
  t.index :email, :unique => true
end
于 2012-06-30T20:25:35.870 回答