2
我在我正在處理的一個項目中大量使用as_json方法,而我正在嘗試執行的項目是隻在飛行中顯示這些屬性,如果他們不是零/空...有沒有人有任何想法如何去做這件事?只顯示在Rails 3 as_json方法中不爲null的屬性
我在我正在處理的一個項目中大量使用as_json方法,而我正在嘗試執行的項目是隻在飛行中顯示這些屬性,如果他們不是零/空...有沒有人有任何想法如何去做這件事?只顯示在Rails 3 as_json方法中不爲null的屬性
您可以覆蓋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)
將在什麼地方clean_to_json.rb文件中最好放置在Rails的? – ethicalhack3r
@ ethicalhack3r可能位於「lib」下,因爲它擴展了默認功能並且不是特定於應用程序。 –