是否有可能覆蓋由ActiveRecord創建的postgres數組類型屬性的<<
運算符?覆蓋Postgres數組類型移位運算符
列定義:
t.time "hours", default: [], array: true
這似乎工作:
def hours=(arr)
super(arr.map {|h| # do some stuff with each element})
end
這不:
def hours<<(val)
super(# do some stuff before pushing)
end
注意,這不是has_many
創建一個協會,我可以爲重載方法添加一個塊。
每次使用小時屬性時,是否存在包含模塊的性能/內存成本? – iftheshoefritz
是的,它慢了大約15倍。但除非你把這種方法稱爲很多次,否則可以忽略不計。還要注意'include'不起作用。你實際上想要做的是使用'extend'。我編輯了我的答案並添加了一個基準 –