0

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)

2 番目の例は、私の質問を示しています。評価する必要がある属性が親モデルではなく、関連付けられたモデルに属している場合、column_names をどのように定義しますか?

4

1 に答える 1