通过序列化器:一个字符串
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
在活动模型序列化程序中,您可以通过执行 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