是否可以在Rails控制器之外使用ActiveModel :: Serializers?

时间:2015-03-24 14:26:11

标签: ruby-on-rails websocket active-model-serializers

我使用websocket-rails gem作为web-socket,我想使用ActiveModel :: Serializers为web-socket消息创建JSON有效负载。 是否可以在控制器中不使用render来使用串行器?

2 个答案:

答案 0 :(得分:12)

在查看源代码后,我找到了我正在寻找的答案。 您可以通过显式实例化序列化程序来使用AMS:ConversationSerializer.new(Conversation.last).as_json

收集: ActiveModel::ArraySerializer.new(Conversation.all, serializer: ConversationSerializer).as_json

答案 1 :(得分:1)

假设您有一个Product模型和一个p记录:

# p = Product.first
ProductSerializer.new(p).to_json

另外,请注意您可能需要加载所需的文件:

require "action_controller"
require "action_controller/serialization"
require "#{Rails.root}/app/serializers/product_serializer.rb"