Rails强大的参数,用于从一个表单创建多个对象

时间:2016-10-26 07:55:11

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-5

我正在尝试从一个表单创建同一模型的多个对象。我在create方法中得到的参数如下所示:

<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

这样可行,但看起来不是正确的方法。该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为我需要更多信息。当我一次创建一个以上的记录时,它通常是另一个对象,我的看起来像这样

# 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

我希望这会有所帮助。

快乐黑客:)