gpt4 book ai didi

ruby - 带条件的 Rails 计数器缓存

转载 作者:数据小太阳 更新时间:2023-10-29 08:25:54 25 4
gpt4 key购买 nike

我有一个 Rails 酒店应用程序,里面有房间。房间可以关联 n 张门票。我创建了一个带有反文化 gem 的计数器缓存,它用分配给它的票数更新房间表,问题是我只想要打开或正在进行状态的票数。我有这段代码,它正常工作但不能在条件下工作任何人都可以通过让我知道如何在条件下工作来指导我吗?感谢任何帮助

房间表迁移文件

 class AddTicketsCountToRooms < ActiveRecord::Migration[5.0]
def self.up
add_column :rooms, :tickets_count, :integer, null: false, default: 0
end
end

Ticket.rb文件

    belongs_to :room
counter_culture :room, column_name: proc {|model| model.status? [0,1] 'tickets_count' : nil }

这不是根据 where 子句和给我错误说

syntax error, unexpected tSTRING_BEG, expecting '}' {|model| model.status? [0,1] 'tickets_count' : nil } ^ /Users/mohammedsayerwala/Documents/Aqua/app/models/ticket.rb:8: syntax error, unexpected ':', expecting keyword_end tatus? [0,1] 'tickets_count' : nil }

最佳答案

Rails 不提供 counter_cache 条件。 where 子句和 each 也不起作用。

要实现条件计数器,您可以在代码中使用自定义回调来管理计数器 blog on custom counter_cache with conditions .

或者,您可以使用 counter_culture gem ,conditional-counter-cache

请引用类似问题的答案 - Counter Cache for a column with conditions?

关于ruby - 带条件的 Rails 计数器缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51642621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com