【发布时间】:2014-05-07 16:28:26
【问题描述】:
我正在使用 Rails 4 设计一个 API,现在我的 Orders 控制器的创建操作有以下内容:
def create
begin
@order = @api_user.orders.create!(order_params)
render :json => @order, :only => [:id], :status => :created, :location => @order
rescue
render :json => {}, :status => :unprocessable_entity
end
end
有了这个,我要求用户发送一个如下所示的 JSON:
{"order" : {"description_1" : "Neque porro quisquam", "description_2" : "Neque porro quisquam", "types_attributes" : [{"url" : "http://test.com"}]}}
所以,我要做的就是检查参数:
params.require(:order).permit(:description_1, :description_2, {types_attributes: [:url]})
我的问题是:
如果我想避免用户必须在 JSON 参数中指定“订单”键,我将如何调用创建操作?我需要orders.create!(key1: params[:key1],...)吗?
解决这个问题的常用方法是什么?
【问题讨论】:
标签: ruby-on-rails json api