Как выставить атрибуты декоратора в Grape Entity
Я работаю над предоставлением некоторых данных мобильному клиенту через API. Некоторые из этих данных определены в декораторе.
app/decorators/customer_opportunity_decorator.rb
def potential_savings
return 'N/A' if opportunity.nil?
multiplier = Customer.get_multiplier(...)
return 'N/A' if multiplier.blank?
...more logic
end
Мы используем Grape Entities на нашем уровне API, и я не знаю, как передать эту логику через API. Не похоже, что он должен жить в декораторе, если он отображается как поле API.
module Entities
class Opportunity < BaseEntity
expose :id
expose :name
expose :potential_savings # need this field on the API
...
А еще есть модель APIApiOpportunity
class ApiOpportunity
attr_reader :id, :name, :potential_savings
def initialize(opportunity)
@id = opportunity.id
@name = opportunity.name
@potential_savings = opportunity.potential_savings # this approach doesn't seem to work
end
end
Это логика, что я должен двигаться в другом месте? Можно ли оставаться декоратором и как-то проходить в API?