从post数组创建多个对象

时间:2017-06-09 22:59:12

标签: ruby-on-rails

我正在做一个小项目来学习RoR而且我遇到了问题。我想将带有对象的JSON数组发送到POST请求,并为每个数组元素创建一个对象,同时也只允许一组参数。这是代码中的样子:

class BodyPartsController < ApplicationController
  before_action :check_admin_rights, only: [:create]

  def create    
    BodyPart.create!(body_parts_params)
    json_response(BodyPart.all)
  end

  def index 
    json_response(BodyPart.all)
  end

  private 

    def body_parts_params
      params.permit(:name, :image_url)
    end
end

这是一个示例请求正文:

[
    {
        "name" : "Abs",
        "image_url" : ""
    },
    {
        "name" : "Arms",
        "image_url" : ""
    }
]

问题是如何设置body_parts_params,以便我只允许nameimage_url。我知道我可以这样做:

  def create    
    params.each do |body_part| 
      BodyPart.create!(name: body_part[:name], image_url: body_part[:image_url])
    end
    json_response(BodyPart.all)
  end

但正如我所说,我想确保只允许这两个参数。有没有办法做到这一点?

0 个答案:

没有答案