2016-09-13 2 views
0

는 PARAMS는 다음과 같이 가정하자 obj가 필요하고 그 안에있는 모든 속성이 허용되면 각 속성을 "permit()"에 특별히 추가해야합니까?모든 속성이 params.require에서 허용하는 경우 어떻게,</p> <pre><code>params.require(:obj).permit(:a, :b) </code></pre> <p>그러나 : 속성 (C)가 허용되지 않습니다</p> <pre><code>params: { obj: { a: 1, b: 2, c: 3 } } </code></pre> <p>경우 : (: OBJ)

params.require(:obj) 

이렇게하면 ForbiddenAttributesError가 발생합니다.

+0

예 모두를 지정해야합니다. 그렇지 않으면 허용되지 않는 것으로 가정합니다. 'require (: obj)'는 단지': obj'가 params-hash라는 키 int가되도록 요구한다고 말하지 않습니다 ... "obj 아래있는 것은 괜찮습니다" –

답변

1

당신은

params.require(:obj).permit! 

permit!permit!는 현재와 미래의 모든 모델은 대량 할당 할 속성을 허용 할 수 있습니다.

0

이것은 강력한 매개 변수이며 컨트롤러와 사용자 끝을 통해 속성에 액세스하는 것에 관한 모든 것입니다.

최종 사용자가 편집 할 수 있고 조작 할 수있는 속성, 허용되지 않은 속성, 할당되지 않은 속성, 데이터베이스로 업데이트되지 않습니다.

허가! 모든 속성에 대해서는 최종 사용자가 모든 매개 변수를 액세스 할 수 있도록해야합니다.

params.require(:obj).permit! 

permit! 현재 및 미래의 모든 모델 속성을 질량 할당 할 수 있습니다.