0

所以我正在尝试实现一个模型来触发我的rails应用程序中可能发生的各种事件。

我想要它做的一些示例代码。

  Action.trigger_on("channel1")

上面的代码将由以下触发:

  Trigger.trigger("channel1")

但是,如果我只想为给定的一组参数触发动作,我可以传递一个哈希

  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})

现在触发器是一个包含这些参数的“属性”子文档的文档。如何找到与所有参数的子集匹配的所有触发器?或者也许有更好的方法来改进这种建模?

愚蠢的做法是找到与通道匹配的所有触发器,然后遍历它们以检查当前触发器是否具有所有所需的属性......

编辑:另外,我想重要的是要注意动作的触发并不是那么关键。

4

0 回答 0