Ruby on rails 如何使用其他字段计算数据库字段?

Ruby on rails 如何使用其他字段计算数据库字段?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个加密应用程序,需要计算插入值的当前市场价值 我有一个名为Crypto Items的DB表 每个加密项目有三个字段“加密货币”,“金额”和“当前市值” 加密货币可以是任何货币“比特币、Ripple等” 用户可以插入货币和金额 现在,当我的用户插入他们的“货币”和“金额”时,我需要进行计算,我使用Bitfinex API将所选货币发送到API,然后使用插入的金额计算回报 我的问题是,应该在哪里进行计算?如何访问发送的数据,如“加密货币”或“金额”?如何将它们设置到数据库中 正在使用的数据库是

我有一个加密应用程序,需要计算插入值的当前市场价值

我有一个名为Crypto Items的DB表

每个加密项目有三个字段
“加密货币”
“金额”
“当前市值”

加密货币可以是任何货币“比特币、Ripple等”

用户可以插入货币和金额

现在,当我的用户插入他们的“货币”和“金额”时,我需要进行计算,我使用Bitfinex API将所选货币发送到API,然后使用插入的金额计算回报

我的问题是,应该在哪里进行计算?如何访问发送的数据,如“加密货币”或“金额”?如何将它们设置到数据库中

正在使用的数据库是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

你考虑过用钩子吗

您可以在CryptoItem中保存前创建一个
,如下所示:

class CryptoItem
这是在POST请求所在的同一控制器中编写的还是应该在何处编写?我将如何访问任何数据库字段或参数,因此,如果我想在名为“crypto_currency”的字段上执行if语句,我将如何执行该操作我假设CryptoItem继承自ApplicationRecord,因此,它可以直接访问数据库中的列。因此,我建议的代码将位于名为
cryto\u item.rb
的模型中。例如,如果在crypto_items表中有一个名为
crypto_currency
的列,则可以从CryptoItem中的任何方法调用
crypto_currency
self.crypto_currency
。另一件事:当你在控制器中创建
CryptoItem.new(crypto_item_params)
时,如果
cryptou item_params
是一个散列,包含数据库中列的键值对,那么模型CryptoItem将知道如何构建自己。例如,您说有一个列名为
crypto\u currency
。如果您使用
item=CryptoItem.new(加密货币:“比特币”)
,则稍后调用item.cryptocurrency将返回“比特币”。在执行
项。保存时,此值将保存在数据库中。