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 回答