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