Ruby on rails 4 具有不同参数结构的多个操作
我有一个测试api应用程序,我使用它在控制器中执行不同的操作。但我无法正确地实施它 此控制器没有模型。它只是将控制权委托给一些服务。我无法将post数据发送到操作Ruby on rails 4 具有不同参数结构的多个操作,ruby-on-rails-4,postman,rails-api,Ruby On Rails 4,Postman,Rails Api,我有一个测试api应用程序,我使用它在控制器中执行不同的操作。但我无法正确地实施它 此控制器没有模型。它只是将控制权委托给一些服务。我无法将post数据发送到操作 class SimplexController < ApplicationController def initiate_request response = SimplexServices.new.initiate_request simplex_params render json:
class SimplexController < ApplicationController
def initiate_request
response = SimplexServices.new.initiate_request simplex_params
render json: response
end
def update_kyc
response = SimplexServices.new.initiate_kyc update_kyc_params
render json: response
end
private
def simplex_params
params.permit!
end
def update_kyc_params
params.permit!
end
end
以下是更新请求
{
"documents": [
{
"document_type_id": "1",
"document_number": "doc123"
},
{
"document_type_id": "2",
"document_number": "doc456"
}
]
}
我将如何在控制器中允许此操作
现在我允许使用下面的代码进行所有操作。但允许一切都是不好的
private
def simplex_params
params.permit!
end
我必须如何在控制器中实现这种情况
谢谢,
A第首先,关于许可证的使用,这取决于要求。如果相关数据不敏感,则可以跳过“允许”,并在“批量更新”中更新所有参数。许可证主要用于在模型包含密码、角色等敏感数据时保护应用程序不被大规模分配 当json数据被传递到Rails api时,可以在参数上使用permit,只需选择键并根据需要进行哈希。从文档中:
params = ActionController::Parameters.new({
person: {
name: "Francesco",
age: 22,
role: "admin"
}
})
permitted = params.require(:person).permit(:name, :age)
permitted # => <ActionController::Parameters {"name"=>"Francesco", "age"=>22} permitted: true>
在您的情况下,通过JSON解析并删除不需要的键我需要在操作中使用所有参数。担心的是,params结构必须只允许上述json结构。不允许使用额外的键和值。如果需要修复json结构,并且json的来源可以是任何第三方,则需要在controller中重新构造该结构,以获得对发送数据的完全控制
params = ActionController::Parameters.new({
person: {
name: "Francesco",
age: 22,
role: "admin"
}
})
permitted = params.require(:person).permit(:name, :age)
permitted # => <ActionController::Parameters {"name"=>"Francesco", "age"=>22} permitted: true>