У меня есть требование в приложении 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 или что-то в этом роде.получить клиент от клиента params и, если клиент присутствует, удалить ключ params из входящих параметров ???
данные поста для 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"
}
}
}
Заранее спасибо, Ajith