2012-08-14 3 views
2

현재 Rails 2.3.8에서 Rails 3.2.7로 응용 프로그램을 업그레이드하는 중이며 대량 할당에 문제가 있습니다.
나는 시도하고 모델을 저장할 때, 나는 다음과 같은 오류 얻을 : 나는 화이트리스트가 속성에 대한 레일이 기본 설정 한 것으로 나타났습니다whitelist_attributes가 false로 설정된 대량 할당 오류

Can't mass-assign protected attributes: a,b,c,d 

:

config.active_record.whitelist_attributes = false 

그래서 내가 true로 변경을, 그러나 오류는 계속 발생했습니다. 우리는 attr_protected를 몇 가지 방법으로 사용합니다.하지만이를 무시하고 모든 것을 보호하는 것으로 보입니다. 나는 그것이 'accepts_nested_attributes_for'를 사용하는 모델 때문인 것으로 추측하고 있지만 그것들은 필요하다.

'attr_accessible'을 사용하지 않고이 문제를 해결할 수있는 다른 방법이 있습니까?

+0

'attr_accessible'은 모델에 대한 속성의 대량 할당을 가능하게합니다. 왜 그것을 사용하지 않으려는 이유가 있습니까? –

+0

꽤 큰 응용 프로그램이므로 모든 것을 최신 상태로 유지하는 데 시간이 걸릴 수 있습니다. 웹 사이트는 회사 내부에서 사용하기위한 것입니다. 따라서 보안은별로 문제가되지 않습니다. – Aaronneyer

답변

1

attr_accessible 또는 attr_protected를 사용할 때마다 해당 모델에 대한 대량 할당 보호가 활성화되어 있습니다. 귀하의 의견에 언급 한대로 웹 사이트가 순수하게 사용되는 경우 attr_accessible을 사용하지 않고이 문제를 해결할 수있는 유일한 방법은 accepts_nested_attributes_for를 사용하여 모델 또는 모델에서 attr_protected를 제거하는 것입니다.

+0

attr_protected를 제거해도 accepts_nested_attributes_for가 필요하다면 효과가없는 것으로 보입니다. – Aaronneyer

+0

중첩 된 특성을 허용하는 모델에서 attr_protected를 사용할 수 있습니까? 참고 : 장기적으로 볼 때 아마도 attr_accessible을 사용하는 것이 더 편할 것입니다. – sgrif

+0

아니요, 당신이 옳다고 생각 하긴하지만 조만간 attr_accessible을 사용하여 모든 것을 가져와야 할 것입니다. – Aaronneyer

관련 문제