我在我正在处理的项目中的几个模型中大量使用了 as_json 方法,我想做的是仅当这些属性不为零时才动态显示这些属性/空...有人知道如何解决这个问题吗?
最佳答案
您可以覆盖as_json
:
# clean_to_json.rb
module CleanToJson
def as_json(options = nil)
super(options).tap do |json|
json.delete_if{|k,v| v.nil?}.as_json unless options.try(:delete, :null)
end
end
end
# foo.rb
class Foo < ActiveRecord::Base
include CleanToJson
end
用法:
@foo.as_json # Only present attributes
@foo.as_json(:null => true) # All attributes (former behavior)
关于ruby-on-rails - 仅显示 Rails 3 as_json 方法中不为 null 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877835/