Ruby on rails 如何向ActiveRecord::Associations::Builder添加选项?

Ruby on rails 如何向ActiveRecord::Associations::Builder添加选项?,ruby-on-rails,ruby,activerecord,ruby-on-rails-4,Ruby On Rails,Ruby,Activerecord,Ruby On Rails 4,我正在尝试使用缓存选项扩展Rails关联,例如has_和_own_to_many: has_and_belongs_to_many :posts, cache: true 当我直接编辑捆绑的ActiveRecord gem时,它工作正常: module ActiveRecord::Associations::Builder class CollectionAssociation < Association #:nodoc: [...] def valid_op

我正在尝试使用
缓存
选项扩展Rails关联,例如has_和_own_to_many:

has_and_belongs_to_many :posts, cache: true
当我直接编辑捆绑的ActiveRecord gem时,它工作正常:

module ActiveRecord::Associations::Builder
  class CollectionAssociation < Association #:nodoc:
    [...]    
    def valid_options
      super + [:table_name, :finder_sql, :counter_sql, :before_add,
               :after_add, :before_remove, :after_remove, :extend,
               :cache]
    end
    [...]
  end
end
模块ActiveRecord::Associations::Builder
类集合关联<关联#:nodoc:
[...]    
def有效_选项
super+[:table\u name,:finder\u sql,:counter\u sql,:在添加之前,
:添加后,:删除前,:删除后,:扩展,
:缓存]
结束
[...]
结束
结束

但我不确定是否有一种干净的方法可以使用monkeypatch、重写或扩展此类。

HABTM关系在第一次被请求时是否不会自动缓存?没有“干净”的方法这里的方式:)可能值得一看,它可能正在执行您试图实现的操作。没错,但ActiveRecord和Identity Cache并没有完全执行我想要执行的操作,我正在应用程序中的任何位置手动执行并尝试提取:)