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并没有完全执行我想要执行的操作,我正在应用程序中的任何位置手动执行并尝试提取:)