class Product < ActiveRecord::Base
belongs_to :parent, :class_name => 'Product', :foreign_key => :parent_id
has_many :children, :class_name => 'Product', :foreign_key => :parent_id
我正在嘗試向:children
列添加計數器高速緩存。我曾嘗試以下:嘗試將counter_cache添加到自加入導軌模型時出錯
belongs_to :parent, :class_name => 'Product', :foreign_key => :parent_id
has_many :children, :class_name => 'Product', :foreign_key => :parent_id, counter_cache: true
也:
has_many :children, :class_name => 'Product', :foreign_key => :parent_id, counter_cache: :children_count
當我運行Product.reset_counters(foo.id, :children)
我收到以下錯誤:
NoMethodError: undefined method `counter_cache_column' for nil:NilClass
難道我不理解一些基本的東西關於counter_cache或self-join?有關這方面的信息很少,不適用於這種類型的自連接。
只是爲了確保'foo'是Pr的一個實例oduct? –
你能分享一下你的模式嗎? – stef
@Michael Gorman foo是產品的一個實例,是的。 – oktober