Rails 活动模型序列化程序包含问题

Rails Active Model Serializer Include Concerns

是否可以在序列化程序中包含代码?我有一些常用的方法,我想只包括而不是总是重复它们。

当然可以。使用 concern、ApplicationSerializer 或编写另一个 类 来共享行为应该没问题。

如果您正在寻找一些代码作为示例:

1) 创建您的专用序列化程序,其中将包含专门的关注点

# app/serializers/specialized_serializer.rb

class SpecializedSerializer < DefaultSerializer
  include SpecializedConcern
  ...
end

2) 在新的关注文件夹中创建您的专业关注

# app/serializers/concerns/specialized_concern.rb

module SpecializedConcern
  extend ActiveSupport::Concern

  included do
    include SomeModule
    ...
  end

  def some_method
    ...
  end
end

3) 将新的序列化关注点文件夹添加到应用程序自动加载路径

# config/application.rb
...
config.autoload_paths += "#{config.root}/app/serializers/concerns"
...