如何在某些状态更改中排除增加的counter_cache?

时间:2013-10-21 15:50:54

标签: mysql ruby-on-rails ruby counter counter-cache

ShiftNote
  belongs_to :shift, counter_cache: true
  workflow do
    state :scheduled
    state :canceled
  end
Shift
  has_many :shift_notes

  scope :opened, lambda {
    locked
    .where("shift_notes_count < shifts.limit")
  }

ShiftEntry 创建shift_notes_count

期间,如何不增加shift_note.state.canceled? => true

现在我的shift_entries_count是只读的。

1 个答案:

答案 0 :(得分:0)

你可以设置一个条件的属于,我认为这是你要求的:

belongs_to :shift, :counter_cache => lambda {|c| !c.state.canceled }