2016-10-26 3 views
1

Я пытаюсь создать несколько объектов одной и той же модели из одной формы. Params, которые я получаю в моем create метод выглядеть следующим образом:Rails сильные параметры для создания нескольких объектов из одной формы

<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> 

Я запутался об использовании strong params в этом случае. Мой create метод выглядит следующим образом:

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

Это работает, но не выглядит как правильный способ сделать это. Как это сделать?

+0

Я думаю, что это правильный способ сделать это, если вы не хотите обойти защиту массового назначения. –

ответ

0

Я думаю, что мне нужно немного больше информации здесь. Когда я создаю более чем на 1 запись в то время, его обычно в chield другого объекта и мина выглядит следующим образом

# 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 

Я надеюсь, что это помогает.

Happy Hacking :)

Смежные вопросы