Ticket
モデルのアプリケーションでかなり複雑なJSON応答がありました。私はTicketDecorator
をこれらの応答を作成する人にしたいと思います。DraperでRabLを使用してto_jsonをレンダリングする
しかし私は自分のシステムに既にセットアップとAPIを用意しており、RABLを使ってそれらのJSONレスポンスを作成していますので、既に作成したテンプレートを再利用したいと思います。
TicketDecorator
内部メソッド内からこのような何かをRABLテンプレートをレンダリングすることが可能です場合、私は思ったんだけど:
ここに私のRABLテンプレートtickets/show.json.rabl
object @ticket
attributes :id, :link, :reported_ago_in_words_with_reporter,
:last_updated_in_words_with_updater, :priority_label, :status,
:location, :category_list
node(:attachment_urls) { |ticket| [ asset_path(ticket.first_attachment_url), asset_path(ticket.second_attachment_url), asset_path(ticket.third_attachment_url) ] }
node(:comment_count) { |ticket| ticket.comments.count }
child :recent_comments do
extends 'comments/index'
end
、ここでは私のTicketDecorator
方法であります:
しかし、私は正常に@ticketを設定できないため、これはうまくいかず、私はエラーが発生しますまたは@ticket
がnilであるためundefined method `first_attachment_url' for nil:NilClass
と表示されます。
誰も私がこれら2つの作業を一緒にうまくいかせるための良い解決策はありますか?
テンプレートを文字列にレンダリングし、手動でRABLを使用するのは私の本当の考えですが、ビューヘルパーではないのでDraperの中でrender_to_string
と呼ぶことができません。
これについてのご意見はありますか?