ユーザーのテーブルがあり、それに値を挿入する前に、ユーザーがすでに存在するかどうかを確認する必要があります。どうすればよいですか?ありがとう!
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 に答える