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
是只读的。
答案 0 :(得分:0)
你可以设置一个条件的属于,我认为这是你要求的:
belongs_to :shift, :counter_cache => lambda {|c| !c.state.canceled }