2011-05-08 5 views
4

계정 레코드가 처음 생성 될 때 업데이트되지 않도록 계정의 전자 메일 필드를 보호하려고합니다. 업데이트 전용으로 attr_protected가 필요합니까?

나는 다음과 같은 시도 :

validate :email_is_unchanged, :on => :update 
def email_is_unchanged 
    errors.add :email, "can only be changed through confirmation" if email_changed? 
end 

을하지만 난 (데이터베이스의 기존 레코드) 다음 작업을 수행하려고하면

A = Account.first을

.update_attributes ({: email => "[email protected]")

true를 반환하지만 레코드를 저장하지 않습니다. 오류를 검사하면 유효성 검증 메소드의 오류가 추가되었음을 알 수 있습니다.

더 좋은 방법이 있나요?

class Account < ActiveRecord::Base 
    attr_readonly :email 
end 

이 이메일로 새 레코드의 생성을 허용하지만 이후되지 갱신 :

답변

2

은 다음보십시오.

관련 문제