Ruby on Rails:Trigger设置上的多态/对象不可知条件?

时间:2014-08-19 00:12:13

标签: ruby-on-rails ruby triggers polymorphic-associations observers

*我不确定这个问题会出现什么概念 - 这会被视为多态关联吗?


我想创建一个系统,用户可以在其中设置触发器,以便在某个事件发生后,发生另一个事件。

例如,我希望用户能够将触发操作定义为:

"此[电子邮件,文档]必须在[注册,阅读电子邮件A,签署文档B]后发送给所有用户。"

正如您在括号" []"中看到的那样,条件可以与各种对象和动作相关联。 我的想法是创建一个模型TriggerCondition并存储列

:object_id, :assigned_to, :activated_when

但object_id(Email,Document)可以是不同的模型。

  1. 添加列:object_type可以是电子邮件还是文档是最佳解决方案?或者是否有更复杂的设计方式,以便我可以传入一个对象,它会自动知道我所指的是什么?

  2. 关于:activated_when条件,我完全不确定如何存储和检查条件。我是否可以使用类似于"电子邮件#marked_as_read(A)的语法?"

  3. 我试图使用Rails Observers来触发操作 http://api.rubyonrails.org/v3.2.13/classes/ActiveRecord/Observer.html

1 个答案:

答案 0 :(得分:0)

Rails可以像这样处理polymorphic associations