2011-09-04 5 views
1

가능한 중복 :
Rails, DEVISE - Preventing a user from changing their email address고안 - 방지 이메일 업데이트 속성

가 어떻게 이메일 필드를 업데이트에서 사용자를 방지 가야합니까? 나는 꽤 일반적인 장치를 가지고있다. 모델에서 업데이트에 대한 일반적인 유효성 검사를 수행 할 수 있을지도 모른다고 생각했습니다. 그러나 아마도 이것을 할 수있는 더 좋은 방법이있을 것입니다. 나는 거기에이 작업을 수행하는 방법에 내장,하지만 일반적으로 특정 속성을 보호하기위한 레일 '방법을 사용하면 내가 확실히 말할 수 없다 유증에 많이 근무 한 적이없는

validate :prevent_email_change, :on => :update 

답변

0

. 가장 안전한 방법은 attr_accessible이지만, 모델의 속성이 바뀔 것으로 예상하지 않으면 attr_protected를 사용할 수도 있습니다. 당신이 액세스 할 수 싶지 않기 때문에 이메일이 여기에 나열되지 않습니다 것을

class User < ActiveRecord::Base 
    attr_accessible :first_name, :last_name, :blah, :blah, :blah 
end 

참고 : 경우

, 당신의 사용자 모델은 라인을 포함한다.

+0

나는 그렇게 할 수 있었다. 하지만 레코드를 만들 때 대량 할당을 사용할 수 없게됩니다. 그러면 사용자 정의 컨트롤러를 작성하여 수동으로 컨트롤러에 할당해야합니다. – merlin

+0

나는 당신이 이미 사용자를 관리하기위한 컨트롤러를 가지고 있지 않다는 것을 알지 못했기 때문에, 수동으로 할당하기 위해서는 어떻게해야 할 지 알고 싶습니다. 이 방법이 제안한 모델 유효성 검사보다 쉽거나 더 좋은 것인지 확실하지 않으므로 두 가지 방법을 모두 탐구 할 것입니다. –