Как рассчитать поле базы данных с использованием других полей? - PullRequest
2 голосов
/ 10 июля 2020

У меня есть это криптоприложение, которому необходимо вычислить текущую рыночную стоимость вставленных значений.

У меня есть DB-таблица с именем Crypto-Items.

Каждый крипто-элемент имеет три поля "Crypto_Currency", "Amount" и "Current market value"

Crypto_currency может быть любой валютой "Bitcoin, Ripple, et c".

Пользователь может вставьте Валюту и Сумму.

Теперь, когда Мой пользователь вставляет свои «Валюта» и «Сумма» и после нажатия кнопки «Создать» мне нужно будет выполнить расчет, я использую API Bitfinex для отправки Выбранной валюты в API, а затем рассчитать доход с введенной суммой.

Мои вопросы: , где следует произвести этот расчет? Как мне получить доступ к отправляемым данным, таким как «Crypto_Currency» или «amount»? Как мне установить их в базу данных.

Используемая база данных PostgreSQL.

Мое приложение полностью основано на api, поэтому это код того, как создается крипто-элемент:

  # POST /crypto_items
  def create
    @crypto_item = CryptoItem.new(crypto_item_params)

    if @crypto_item.save
      render json: @crypto_item, status: :ok
    else
      render json: @crypto_item.errors, status: :unprocessable_entity
    end
  end

1 Ответ

1 голос
/ 10 июля 2020

Рассматривали ли вы использование ловушки?

Вы можете создать before_save в CryptoItem, примерно так:

class CryptoItem < ApplicationRecord
  before_save :do_whatever

  private

  def do_whatever
    # Your calculation goes here.
    # you can assign the result of the Bitfinex API call 
    # to an attribute using self.attribute = ...
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...