作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从ItemSerializer中访问current_user_id
。
有办法实现吗?我什至有一个肮脏的hack :)
我知道serialization_options
哈希的存在(来自How to pass parameters to ActiveModel serializer
),但仅适用于render
命令(如果我正确的话),因此可以执行以下操作:
def action
render json: @model, option_name: value
end
class ModelSerializer::ActiveModel::Serializer
def some_method
puts serialization_options[:option_name]
end
end
ArraySerializer
在
render
命令外部生成json哈希,如下所示:
positions_results = {}
positions_results[swimlane_id][column_id] =
ActiveModel::ArraySerializer.new(@account.items,
each_serializer: ItemSerializer,
current_user_id: current_user.id) # <---- Does not work
最佳答案
您可以通过2种方式来做到这一点:
serialization_options
,但是据我所知,正如您所说,您只能在 Controller 的响应中使用它:context
或scope
传递,几乎相同:# same as with scope
ActiveModel::ArraySerializer.new(@account.items, each_serializer: ItemSerializer, context: {current_user_id: 31337})
# In serializer:
class ItemSerializer < ActiveModel::Serializer
attributes :scope, :user_id
def user_id
context[:current_user_id]
end
end
关于ruby-on-rails-4 - 如何将参数传递给ActiveModel::ArraySerializer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32439568/
我需要从ItemSerializer中访问current_user_id。 有办法实现吗?我什至有一个肮脏的hack :) 我知道serialization_options哈希的存在(来自How to
是否可以像这样调用 ArraySerializer 构造函数: mi_tmp[:notes]=ActiveModel::ArraySerializer.new(mi.notes, each_ser
假设我有一个模型 User和一个序列化器 UserSerializer < ActiveModel::Serializer ,以及一个如下所示的 Controller : class UsersCon
我已经让 API 使用标准流程工作,但我想从 JSON 输出中删除 data 命名空间。我看到我需要实现 ArraySerializer,我已经阅读了 Fractal 文档,但我无法确定我需要在 La
我是一名优秀的程序员,十分优秀!