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 の投稿データは次のとおりです。
{
"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"
}
}
}
前もって感謝します、アジット