Чтение JSON объекта в Ruby на Rails - PullRequest
0 голосов
/ 07 марта 2020

Я 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

Любая помощь будет принята с благодарностью. Спасибо.

...