我有模型分类和产品。如果我使用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