어쩌면 내가 여기에 잘못 만하고있는 중이 야하는 것은 내 문제입니다 :레일 협회는 없습니다 대량 할당 할 수 있습니다 외래 키
이@restaurant = current_user.restaurants.build(params[:restaurant])
이것은 USER_ID가 current_user.id
로 설정되어 새로운 레스토랑 객체를 구축합니다. 레스토랑 모델에 attr_accessible :user_id
을 설정 한 경우에만 작동합니다. 당신이
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes:
user_id
을하지 않으면 내가 원하는 사람이 몇이 레코드의 USER_ID를 설정하는 다음이 가능하기 때문에 user_id
가 .build
를 통해 정의하지만 동시에 나는 attr_accessible :user_id
을하지 않을 것입니다 다른 사용자의 ID는 나쁜 것입니다!
외계 키가이 일괄 적 할당 보안에서 제외되었다고 생각하고 연결 .build
또는 .create
메서드를 통해 새 개체를 만드는 경우 적용되었습니다.
제안 사항? 나는 패배의 종류 .build
매개 변수에 'id'가 없다고 확신합니까? – apneadiving
예! params 해시에 ID가 없습니다. – patrickdet
Rails 3.2.0.rc1을 사용하고 있습니까? 그건 알고있는 버그 야. https://github.com/rails/rails/issues/4051 (해결) – Damien