Я Ruby новичок в Rails и пытаюсь преобразовать статичный веб-сайт c, который я создал, в приложение Rails, где я могу хранить клиентов и предоставлять данные. Я пытаюсь сделать это как RESTful API, где мой сайт отправляет объект JSON, содержащий информацию о клиенте. Я проверяю, совпадает ли электронная почта в объекте JSON с любыми электронными письмами, которые есть в моей базе данных, и отправляет ли мне идентификатор этого клиента. Если нет, то я создаю нового клиента и отправляю обратно этот идентификатор. У меня проблема в том, что независимо от того, как я это пишу, мое приложение rails не читает данные JSON, поэтому, если у меня ничего нет в моей базе данных, оно создает клиента со всеми нулевыми атрибутами, и когда я запускаю его снова идет "О, у меня есть клиент с нулевым адресом электронной почты" и возвращает этого клиента.
{
"fname": "William",
"lname": "Shakespeare",
"email": "wshakespeare@test.com",
"bname": "MyCompany",
"primary": "555-555-5555",
"secondary": ""
}
Вот пример моего JSON объекта.
Вот как выглядит мой контроллер:
class CustomersController < ApplicationController
skip_before_action :verify_authenticity_token
wrap_parameters format: [:json, :xml, :url_encoded_form, :multipart_form]
def create
@query = Customer.where(:email === params[:email])
if @query.empty? == true
redirect_to action: "new", status: 301
else
@theid = @query.first.id
render json: {status: 'SUCCESS', message: 'Existing customer', theid:@theid}
end
end
def new
Customer.create(fname: params[:fname], lname: params[:lname], email: params[:email], bname: params[:bname], primary: params[:primary], secondary: params[:secondary])
render json: {status: 'SUCCESS', message: 'New customer', theid: Customer.last.id}
end
Любая помощь будет принята с благодарностью. Спасибо.