Oks*_*ana 3 ruby activerecord json
我想知道在ActiveRecord上的to_json时是否有任何方法可以跳过具有nil值的属性.默认行为是包含一个nil值:
有没有一种方法可以使这个值不显示?
@ lars的答案适用于单个对象,但对于Active Record对象的数组,您必须遍历数组的每个元素并进行转换.如果您希望每次调用.to_json或render :json =>为该模型进行此转换,您可以覆盖as_json模型中的函数,如下所示:
class Model
..
def as_json(options={})
super(options).reject { |k, v| v.nil? }
end
end
Run Code Online (Sandbox Code Playgroud)
此外,我假设您已ActiveRecord::Base.include_root_in_json = false在您的环境中定义(config/initializers/active_record.rb在Rails 3和config/initializers/new_rails_defaults.rbRails 2中).否则,您将必须在模型中完全实现@lars的函数(value[0]获取属性hash等).
仅当您希望每次调用.to_json或render :json =>为该模型执行此操作时,才使用此方法.否则你应该坚持@ lars的答案.