0

ユーザーのテーブルがあり、それに値を挿入する前に、ユーザーがすでに存在するかどうかを確認する必要があります。どうすればよいですか?ありがとう!

4

2 に答える 2

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 に答える
0

exists?のような動的メソッドを使用できますfind_or_create_by_...

于 2012-06-30T20:16:08.510 に答える