2011-10-23 4 views
0

에서 3.1 레일 대량 레일 할당의 기본 동작 무엇입니까나는 신선한 새로운 레일 프로젝트를 생성하고,이 같은 새로운 자원을 스캐 폴딩 경우

이것이 내가이 작업에 양식을 게시 할 경우 일 것입니다 만들 이유는 사용자 모델에 정의 attr_accessible,이 없기 때문에 내가 궁금 무엇
def create 
    @user = User.new(params[:user]) 
    respond_to do |format| 
    if @user.save 
     ... 
    else 
     ... 
    end 
    end 
end 

이다. attr_accessible은 대량 할당을 허용하기 때문에 여기에 기본값이 무엇입니까?

답변

3

레일스의 기본값은 데이터베이스 속성의 대량 할당이 허용된다는 것입니다. 질량 할당이 가능하려면 attr_accessible 컨텍스트 내에서 해당 이름과 이메일 문자열을 정의 할 필요가 없습니다. 당신이 attr_accessible은 다음 attr_accessible 내 속성 대량 할당 될 것입니다, 정의되어있는 경우, 할당 한 덩어리로 만들어진 될 수있는 속성의 화이트리스트를 정의 할 경우

이제 attr_accessible 유용합니다.

마찬가지로 attr_protected는 질량 할당에 사용할 수없는 속성의 차단 목록을 정의하는 데 사용됩니다.

이러한 속성은을 정의하지 않는 한 이 아니지만, attr_accessible없이 코드가 올바르게 작동하는 이유입니다. 필자는 화이트리스트 접근법을 블랙리스트 접근법보다 훨씬 안전하다고 개인적으로 인정합니다. 응용 프로그램이 attr_accessible없이 작동하지만 결국에는 보안상의 이유로 응용 프로그램을 사용하는 것이 좋습니다.

+0

더 좋았을 것 같지 않았습니다. 우수 설명 @Ken Li – ardavis