通过序列化器:一个字符串

Pass serializer: a String

在活动模型序列化程序中,您可以通过执行 respond with resource, serializer: ViewContractsSerializer 使用不同的序列化程序。问题是我希望通过使用 serializer: "View#{resource_name}Serializer" 使其成为动态的,但这不起作用,因为它是一个字符串。如果我这样做 serializer: eval("View#{resource_name}Serializer") 它当然有效,但我知道你不应该在生产代码中使用 eval。

Rails 有一个有用的 constantize 方法可以做你想做的事:

respond_with resource,
  serializer: "View#{resource_name}Serializer".constantize