所以我正在尝试实现一个模型来触发可能在我的rails应用程序中发生的各种事件。
我希望它做的一些示例代码。
Action.trigger_on("channel1")
以上代码将由以下内容触发:
Trigger.trigger("channel1")
但是如果我只想要为一组给定的参数触发Action,我可以传递一个哈希
Action.trigger_on("channel1", {important: true, is_transfer: true})
上述动作只会由channel1上“channel1”上的内容触发,并且必须是important: true
,并且它必须是is_transfer: true
。
因此,它不会触发它,因为它没有is_transfer:
Trigger.trigger("channel1", {important: true})
但这会
Trigger.trigger("channel1", {important: true, is_transfer: true})
现在,触发器是一个包含这些参数的“属性”子文档的文档。如何找到与所有参数的子集匹配的所有触发器?或者可能有更好的方法来改进这种建模?
执行此操作的愚蠢方法是找到与通道匹配的所有触发器,然后通过它们进行迭代以检查当前触发器是否具有所有所需的属性....
编辑:另外,我想重要的是要注意一个动作的触发不是时间关键。