2011-03-11 2 views
16

매스 할당이 무엇인지 및 주위를 코딩하는 방법을 명확히 밝힙니다. 대량 할당 해시를 사용하여 많은 분야의 할당, 즉 같은 ..레일 매스 할당 정의 및 attr_ 접근 가능

@user = User.new(params[:user]) 

그리고 당신은 attr_accessible 사용이 문제를 방지하는 것입니다 같은 :

attr_accessible :name, :email 

그래서 같은 필드 : 관리자 질량 할당으로 추가 할 수 없습니까?

그러나 우리는 같은으로 코드를 수정할 수 있습니다 : 그래서 우리가 attr_accessible 다음 모든 대량 할당에 액세스 할 수없는 경우 사실이다

@user.admin = true 

? "이름 attr_accessible"모든 다른 필드는 이제 대량 할당 하지 액세스 할 수있는 것을 의미한다

그리고 마지막으로 까다로운 점 ...

가 같은 경우에도 하나의 attr_accessible이 사실입니까?

답변

11

귀하의 모든 가정이 정확합니다. attr_accessible을 사용하지 않으면 모든 필드가 질량 할당에 열려 있습니다. attr_accessible을 사용하기 시작하면 지정한 필드 만 일괄 지정에 열려 있습니다.

5

Srdjan이 지적한대로 모든 가정은 정확합니다. 아시다시피, attr_accessible의 반대 인 attr_protected 메소드가 있습니다. 대량 할당되는 것을 관리를하지만, 다른 모든 필드를 허용 할 것이다 : 즉

attr_protected :admin 

에서

는 방지 할 수 있습니다.

2

config.active_record.whitelist_attributesconfig/application.rbfalse으로 설정되었다고 가정하면 Srdjan의 대답이 정확합니다. 이 true로 설정되어있는 경우

, attr_accessible 또는 attr_protected 사용하지 않으면 모든 속성이 는 기본적에 의해 대량 할당에서 보호됩니다.

관련 문제