在 counter_culture 方法中定义 column_names 时,是否可以进行深度关联?在文档和示例中,它始终是属于用于确定 column_names 的模型的属性。但是,如果属性属于关联模型怎么办?
例如,这有效
# Account model
counter_culture :user,
column_name: Proc.new { |account| account.has_billable_hours? ? 'billed_hours_sum' : nil },
delta_column: 'billed_hours',
column_names: { ["account.billed_hours > ?", 0] => "billed_hours_sum" }
相关例子
# Account model
counter_culture :user,
column_name: Proc.new { |account| account.clients.has_billable_hours? ? 'billed_hours_sum' : nil },
delta_column: 'billed_hours',
column_names: { ["accounts.clients.billed_hours > ?", 0] => "billed_hours_sum" }
如果,对于上述情况,你可以(你不能)在 column_names 方法中使用连接,它看起来像这样
joins(:account=>:client).where("accounts.clients.billed_hours > ?", 0)
第二个例子说明了我的问题。当需要评估的属性不属于父模型,而是关联模型时,如何定义 column_names?