ruby-on-rails - 我如何在 JSON 中传递 API 的结果
问题描述
module Api
module V1
class CalculatorsController < ApplicationController
def compute
@fields = Calculator.find_by(slug: params['id']).fields.result
render json: @fields, root: 'result', adapter: :json
@fields.each do |field|
cal_res = CalculatorResolver.call(field.calculator)
res = cal_res.each_with_object({}) do |(key, value), result|
result[key[:value]] = value.each_with_object({}) do |v, sel|
sel[v[:selector].downcase] = v[:value]
end
end
res.each do |key, value|
CalculationResolver.result(value, key)
end
end
end
end
end
end
class Field < ApplicationRecord
belongs_to :calculator
before_create :set_selector
enum kind: { form: 0, parameter: 1, result: 2 }
enum unit: { month: 0, date: 1, times: 2 }
validates :type, :label, :kind, presence: true
validates :unit, inclusion: { in: units.keys }
private
def set_selector
return if selector.present?
selected_rows_count = Field.where(kind: kind).count
if selected_rows_count.positive?
previous_number = Field.where(kind: kind).last.selector[1]
self.selector = kind[0].upcase + previous_number.next.to_s
else
self.selector = "#{kind[0].upcase}1"
end
end
def result
0
end
end
class FieldSerializer < ActiveModel::Serializer
attributes :name, :result
def name
object.name.parameterize.underscore
end
end
我有类 Field,API/V1/compute 和类 Field Serializer
在 API/V1/compute 结果是 CalculationResolver.result(value, key)。它是数字的。
我需要在类字段方法结果中传递结果
我该怎么做?
解决方案
推荐阅读
- c++ - 如何将字符串指针数组转换为字符串类型的智能指针向量?
- javascript - 正在为每个列表项调用从 ngOnInit() 内部调用的函数
- javascript - 用于输入文本框的具有不同 ID(多 ID 输入)的 keyup jquery
- python - 单击主窗口 PyQt5 Python 中的按钮时打开窗口
- python - 如何将 Popen 对象传递给 concurrent.futures.ProcessPoolExecutor
- redis - Redis 运行版本不匹配实际版本
- mysql - 检查mysql中是否存在列
- javascript - 计算每个相应数据属性的选项卡内的项目
- mysql - 外键约束的格式不正确
- wordpress - 我想将文件上传到 wordpress 中的上传文件夹