首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将参数从Grape::API传递到序列化程序

将参数从Grape::API传递到序列化程序
EN

Stack Overflow用户
提问于 2016-08-16 22:32:14
回答 1查看 1K关注 0票数 2

我得到了一个参数,例如: Grape::API中的member_id

代码语言:javascript
运行
复制
   desc 'Return Events'
         params do
             requires :member_id, type: Integer, desc: 'Member'
         end
         get 'all' do
              #some code
         end
     end

我想把它传递给ActiveModel::Serializer,这样我就可以执行一些功能了。

有什么方法可以把它传递给ActiveModel::Serializer吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-07 23:04:54

当您使用ActiveModel::Serializers序列化对象时,您可以传递序列化程序中可用的选项,作为options (或instance_options,或contextdepending on which version of AMS you're using)。

例如,在Rails中,您可以像这样传递一个foo选项:

代码语言:javascript
运行
复制
# 0.8.x or 0.10.x
render @my_model, foo: true
MyModelSerializer.new(@my_model, foo: true).as_json

# 0.9.x
render @my_model, context: { foo: true }
MyModelSerializer.new(@my_model, context: { foo: true }).as_json

在序列化程序中,您可以访问options (或instance_options)来获取值:

代码语言:javascript
运行
复制
class MyModelSerializer < ActiveModel::Serializer
  attributes :my_attribute

  def my_attribute
    # 0.8.x: options
    # 0.9.x: context
    # 0.10.x: instance_options
    if options[:foo] == true
      "foo was set"
    end
  end
def
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38977681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档