1

私はこのコードを持っています:

 class Member extends ActiveRecord\Model
  {
   static $validates_uniqueness_of = array(
      array('name', 'message' => "That name has already been registered. Please choose another", 'on' => 'create'),
      array('email', 'message' => "That email has already been registered. Please choose another", 'on' => 'create')
   );
  }

問題は、更新時に一意性をチェックすることです。私はそれをしたくありません。作成時のみ。

何を間違って入力していますか?

4

2 に答える 2

2

次のようなものを試してください

validates_uniqueness_of :name, :on => :create
validates_uniqueness_of :email, :on => :create

これでうまくいくはずです。試してみてください =)

于 2013-09-03T17:04:45.293 に答える
0

うーん、それはマニュアルに従って動作するはずですが、それがうまくいかない場合は、そのリンクで説明されているように、カスタムの検証機能を試すことができます。

  class User extends ActiveRecord\Model
  {
    public function validate() 
    {
      if ( your_uniqueness_check_here )
      {
        $this->errors->add('namecheck', "can't be the same as someone elses.");
      }
   }
 }

別のオプションは、呼び出しを使用して更新することsave(false)であるため、検証をスキップします。少しトリッキーです。

于 2013-09-03T19:55:46.350 に答える