我有模型分類和產品。如果我使用category.products << new_product
,則該項目將被添加到數組中,並且記錄將保存到數據庫中。我嘗試將下面的「add」方法添加到數組類中,並且它將new_product添加到數組中,但它不會將其保存到數據庫中。這是爲什麼?將添加方法添加到ActiveRecord陣列
class Array
def add(item)
self << item
end
end
更新:
collection_proxy.rb有以下方法:
def <<(*records)
proxy_association.concat(records) && self
end
alias_method :push, :<<
所以下面的擴建工程:
class ActiveRecord::Relation
def add(*records)
proxy_association.concat(records) && self
end
end
解決方案:
添加的別名CollectionProxy:
class ActiveRecord::Associations::CollectionProxy
alias_method :add, :<<
end
由於Rails協會是不是數組,他們只是聲稱他們是。 – 2012-08-15 21:37:09
他們是什麼?我怎樣才能添加一個「添加」方法? – Manuel 2012-08-15 21:41:51