传递序列化程序:一个字符串

时间:2015-09-18 22:14:59

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

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

1 个答案:

答案 0 :(得分:0)

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

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