1

가 어떻게이 같은 PARAMS에 대한 강력한 매개 변수를 사용할 수 있습니다 속성 :강력한 매개 변수

permit!(... model attributes, related_model_attributes: [{:attr_1, ..other attributes]]) 

는 것 : 나는 FF로 조각처럼 정상적인 허가 스타일을 사용하는 경우

{ 
    ... attributes of a model, 
    related_model_attributes => [ 
     RANDOM_HASH_KEY => { attr_1 => value_1, ... other attributes }, 
     ANOTHER_RANDOM_KEY => { attr_1 => value_1, ... other attributes} 
     ... 
    ] 
} 

무작위 해시 키에 대해 허용되지 않는 오류가 발생했습니다.

강력한 매개 변수를 has_many와 함께 사용하려면 어떻게해야합니까?

답변

1

분명하고보기 흉한 것 외에도 공식적으로 승인 된 방법이 없습니다.

이 같은 해시를 감안할 때 :

{ thing: { 
    thangs_attributes: { 
     'some_synethic_index' => { 
      attribute: value 
     }, 
     'some_other_index' => { 
      attribute: value 
     } 
    } 
} 

아이디어는 자신의 외모에 따라 thang_attributes 해시 키를 할 수 있도록 기본적으로.

이와 비슷한 것.

def thing_params 
    thangs_attributes = params[:thing][:thangs_attributes].keys.each_with_object([]) do |k, memo| 
     memo << { k => [:id, '_destroy', :attribute] } 
    end 

    params.require(:thing).permit(thangs_attributes: thangs_attributes) 
end 

각 임의 색인 키에 대해 중첩 해시를 설정해야하는 번호는 thangs_attributes입니다. 또는 안전하지 않은 경우 params.require(:thing).permit!으로 전화하면 모든 매개 변수가 허용됩니다.

+0

작동하도록 설정 했습니까? – JoshL

+0

예 -이 방법이 효과적입니다. 최근에는 좀 더 강력한 솔루션을 위해 JSON 스키마를 사용하고 있습니다. – prater