【问题标题】:Active Model Serializer issue for Nil objectNil 对象的活动模型序列化程序问题
【发布时间】:2020-03-15 01:51:32
【问题描述】:
ActiveModelSerializers::SerializableResource.new(object.project, include: [collaborator: :pictures]).as_json[:project]
当 object.project 为 nil 时,就会出现问题。
NoMethodError: nil:NilClass 的未定义方法“[]”
【问题讨论】:
标签:
ruby-on-rails
ruby
active-model-serializers
【解决方案1】:
毕竟它与 ActiveModelSerializers (AMS) 无关。在 Ruby 中,nil 会导致很多NoMethodError,所以我们经常避免使用nils 和if 或unless 修饰符。
例如,在您的情况下,我们经常这样做
ActiveModelSerializers::SerializableResource.new(object.project, include: [collaborator: :pictures]).as_json[:project] if object.project