Передать сериализатор: строка

В сериализаторах активных моделей вы можете использовать другой сериализатор, выполнив respond with resource, serializer: ViewContractsSerializer. Проблема в том, что я хочу, чтобы это было динамически с использованием serializer: "View#{resource_name}Serializer", и это не работает, потому что это строка. Если я сделаю serializer: eval("View#{resource_name}Serializer"), это, конечно, сработает, но я знаю, что вы не должны использовать eval в рабочем коде.


person Seldon Stone    schedule 18.09.2015    source источник


Ответы (1)


В Rails есть полезный метод constantize, который может делать то, что вы хочу:

respond_with resource,
  serializer: "View#{resource_name}Serializer".constantize
person Jordan Running    schedule 18.09.2015