【发布时间】:2017-05-19 07:28:46
【问题描述】:
我有一个 API,基于 Rails 4.2.6,使用 active-model-serializers 0.10.0。虽然 ams 很棒,但我想返回一个不代表表中列的键和值。该 API 用于创建一封信,我需要返回用户可以找到该信的 url。大致如下:
https://{DOMAIN}.com/letters/{LETTER.ID}
我是否以某种方式修改序列化程序来执行此操作,或者我是否呈现一些包含序列化程序信息的自定义 JSON?我检查了其他几个与自定义 JSON 输出有关的问题,但它们没有专门讨论这个问题。
编辑
我在下面尝试了您的方法,@max,尽管我不确定这是否完全符合您的意思。这是我添加到序列化程序中的内容:
attributes :id, :url, :date_created, etc...
def url
"https://{www.example.com/previewpdf/mailings/#{id}"
end
我尝试了这两种方法,并使用了 self.id,但都返回了“未定义的方法 'id'”错误,所以我将继续使用。
编辑 #2 我切换到使用 :id 而不是 id,这使得未定义的方法错误消失了,但 url 在 JSON 中显示为
https://www.example.com/pdfpreview?SubOrderId=id
当我需要最后一部分来读取 SubOrderId=28291 或正在创建的邮件的任何 id 时。
编辑
这仍然让我感到困惑,有人知道如何在自定义字符串响应中包含 id 键的实际值吗?
【问题讨论】:
标签: ruby-on-rails json api serialization active-model-serializers