我在 rails api 应用程序中有一个要求。客户可以有许多订单,每个订单属于一个客户。
class Client < ApplicationRecord
has_many :orders
end
我的 order.rb 是
class Order < ApplicationRecord
belongs_to :client, dependent: :destroy
accepts_nested_attributes_for :client
validates_presence_of :order_amount, :service_amount, :miners_amount
end
我有一个公开的路线/place_order并创建客户和订单。
class OrderProcessingController < ApplicationController
def place_order
@order = Order.new(order_processing_params)
if @order.save
render json: @order
else
render json: @order.errors.full_messages
end
end
private
def order_processing_params
params.require(:order).permit(:order_amount, :service_amount, :miners_amount, client_attributes: [:name, :email, :phone_number, :date])
end
end
到目前为止一切正常。现在我的要求是,我必须检查客户端是否已经存在于客户端表中。如果是,则为订单添加 client_id 并创建新订单。我不想每次都创建新客户和订单。
我怎样才能在 before_filter 或类似的东西中达到同样的效果。从客户端参数获取客户端,如果客户端存在,则从传入参数中删除参数键???
place_order 的 post 数据如下
{
"order" : {
"order_amount" : "10000",
"service_amount" : "1000",
"miners_amount" : "10000",
"client_attributes": {
"name": "Ajith",
"email": "ajith@gmail.com",
"phone_number": "12231321312",
"date": "12/12/12"
}
}
}
在此先感谢,阿吉斯