2010-07-14 2 views
1

두 모델간에 has_and_belongs_to_many 연관 관계가 있습니다.collection_select는 옵션이 선택되지 않은 상태에서 ActiveRecord가 컬렉션을 업데이트하도록 허용하지 않습니다.

이 연결에서 다른 모델을 양식으로 표시하려면 collection_select를 사용했습니다. collection_select에서 옵션의 선택을 취소하려고 시도했을 때 collection_select는 빈 값을 게시하지 않으므로 ActiveRecord가 데이터베이스에 업데이트 절을 전달할 수 없습니다.

예컨대 매개 변수는 다음과 같습니다. 선택 사항을 선택한 경우. 매개 변수 : { "name_of_model"=> { "name"=> "de2", "other_model_ids"=> [ "1", "3}]

선택하지 않으면; 매개 변수 : { "name_of_model"=> { "name"= ""de2 "}

누구든 해결 방법을 알고 있습니까?

답변

1

당신은이 컨트롤러 액션에 전달되지 않은 경우는 하늘의 배열이 될하기 위해 other_model_ids 매개 변수를 설정해야합니다

params[:name_of_model][:other_model_ids] ||= [] 

이 보장됩니다 그 다음 모델이 제대로 그래서 업데이트됩니다 어떤 선택이없는 경우 연관된 모델 ID가 없다는 것입니다.

+0

아, 고마워. 나는 erb 파일을 조정하여이 문제를 찾아 내려고 시도했지만이 아이디어를 생각해 내지 못했다. 고마워. – suzukimilanpaak

관련 문제