2012-08-01 3 views
2

매개 변수를 기반으로 개체를 생성하고 컨트롤러의 update 메서드 내에서 update_attributes 메서드에 전달했습니다. 모델에 attr_accessible 목록의 일부로 나열되지 않은 하나의 특성 (xyz)이 개체에있었습니다. Rails는 문제의 속성을 업데이트하지 않고 속성 xyz의 대량 할당이 실패했다는 경고를 생성했습니다.대량 할당 경고에 대해 update_attributes가 실패하는 방법

경고를받는 대신 이러한 상황이 발생하면 update_attributes가 실패하는지 확인하고 싶습니다. 이 설정을 수행하기 위해 update_attributes 호출에 전달할 수있는 구성 설정 또는 옵션이 있습니까?

답변

4

당신은 예외가 발생하는 소독제를 사용하도록 설정을 변경할 수 있습니다. 귀하의 질문에 레일 3.1 태그, 그래서 작동하지 않습니다. 3.2로 업그레이드하거나 살균제를 패치하는 방법에 대해서는 SO question을 살펴보십시오.

+0

정답과 두 버전의 레일 옵션을 모두 제공해 주셔서 감사합니다! – Tabrez

+0

3.2로 업그레이드 할 계획이라면,이 railscast를 권장합니다. (그런데 설정 변경을 언급합니다.) http://railscasts.com/episodes/318-upgrading-to-rails-3-2 – aromero

+0

고마워요. 제가 확인하겠습니다. – Tabrez

2

mass_assignment_sanitizer=를 사용하여 자신의 mass_assignment_sanitizer를 설정하고 당신은 아마 실패 할 것이다 당신의 자신의 소독제를 설정하는 방법에 대한 예와 active_model/mass_assignment_security.rb에 대한 active_model/mass_assignment_security/sanitizer.rb보고 싶다.

config.active_record.mass_assignment_sanitizer = :strict 

편집 :이 3.2부터 사용할 수 있습니다

+0

빠른 응답에 감사드립니다. – Tabrez