从db(sqlite3)中选择记录

时间:2012-06-30 20:12:26

标签: ruby-on-rails

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

2 个答案:

答案 0 :(得分:0)

您可以使用exists?或者像find_or_create_by_...这样的动态方法。

答案 1 :(得分: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