1
我有一個API控制器下面的方法:如何將令牌和其他會話信息發送到前端?
module Api
module V1
class ArticlesController < Api::BaseController
def show
article = Article.find(params[:id])
render json: article
end
end end end
,同時使用active_model_serializers
寶石,我有以下串行:
class Api::V1::ArticleSerializer < ActiveModel::Serializer
attributes :id, :author_id, :title, :description
end
對於所有的API請求服務器應包括信息會話,例如api令牌和當前用戶。所以在上面的例子中,生成的json不僅應該包含文章序列化程序中提到的屬性,還應該包含api標記。
在哪裏以及如何通常包含此會話信息以發送到API前端?這可能是在一個單獨的序列化程序,除了在這種情況下,包括文章序列化程序?
感謝@Jordan。對於標記,在調用序列化器的控制器方法中定義'@ token'就足夠了,然後在超類序列化器集合中定義'def token'; '@ token'' end'?那是那種方式嗎? – Marty
不,序列化程序無法訪問控制器的實例變量。你使用的是什麼版本的active_model_serializers?看起來像'serialization_options'是0.9.4中的方法,如本答案中所述:http://stackoverflow.com/a/26780514 –
謝謝@Jordan,'serialization_options'工作。 – Marty