我正在做一个小项目来学习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
,以便我只允许name
和image_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
但正如我所说,我想确保只允许这两个参数。有没有办法做到这一点?