2016-10-26 2 views
1

Ich versuche, mehrere Objekte des gleichen Modells aus einem Formular zu erstellen. Params, die ich in meinem create Methode erhalten wie folgt aussehen:Rails starke Parameter zum Erstellen mehrerer Objekte aus einem Formular

<ActionController::Parameters {"objects"=> <ActionController::Parameters { 
    "0"=>{priority"=>"24", "style"=>"three_pictures"}, 
    "1"=>{"priority"=>"24", "style"=>"three_pictures"}, 
    "2"=>{"priority"=>"24", "style"=>"three_pictures"} 
} permitted: false>}permitted: false> 

ich über die Verwendung von strong params in diesem Fall bin verwirrt. Meine create Methode sieht wie folgt aus:

def create 
    params[:objects].each do |index, object| 
    Object.create(object.permit(:priority, :style)) 
    end 
    ... 
end 

Dies funktioniert, aber sieht nicht wie der richtige Weg, dies zu tun. Wie soll das gemacht werden?

+0

Ich denke, die den richtigen Weg, es zu tun, wenn Sie nicht wollen, Massenzuordnung Sicherheit umgehen. –

Antwort

0

Ich denke, dass ich ein bisschen mehr Informationen hier brauche. Wenn ich mehr als 1 Datensatz zu einem Zeitpunkt seiner in der Regel eine chield eines anderen Objekts erstellen und Mine sieht aus wie dieses

# Never trust parameters from the scary internet, only allow the white list through. 
def family_params 
    params.require(:family).permit(:name, users_attributes: [ :name, :email ]) 
end 

ich hoffe, dass dies hilft.

Happy Hacking :)

Verwandte Themen