![]() |
1
13
成就系统通常的工作方式是,有大量不同的成就可以被触发,有一组触发器可以用来测试一项成就是否应该被触发。 使用多态关联可能是一个坏主意,因为加载所有的成果来运行和测试它们可能最终是一个复杂的练习。还有一个事实是,您必须弄清楚如何在某种表中表示成功或失败的条件,但在很多情况下,您可能会得到一个映射不那么整齐的定义。您可能会有60个不同的表来表示所有不同类型的触发器,这听起来像是一场噩梦。 另一种方法是根据名称、值等定义您的成就,并使用一个常量表作为键/值存储。 下面是一个迁移示例:
这个
在数据库中使用原始Ruby代码意味着不需要重新部署应用程序就可以很容易地动态调整规则,但这可能会使测试更加困难。
样品
如果你想简化你的规则,你可以创建一些可以扩展的东西
为了避免将代码放在数据库中(有些人可能会觉得这是一个不好的地方),您必须在一些批量过程文件中独立地定义这些过程,并通过某种定义传入各种调优参数。这种方法看起来像:
调整
在这种情况下
你经常要在一堆的
|
![]() |
Inarion · 我需要一个多态关联,还是我的模型不够充实? 7 年前 |
![]() |
Prodigle · Laravel多态关系0结果 7 年前 |
![]() |
Nick Res · 命名空间模型不适用于多态性,我需要一种解决方法 8 年前 |
![]() |
spl · 多态关联-如何创建主索引页面 12 年前 |
![]() |
Tyler · 带有载波和多态关联的Rails上传表单 12 年前 |
![]() |
timpone · 如何获得多态关系的另一面 12 年前 |
|
c_ern · 多对多关系可能需要多态关联?创建模型所需的帮助 12 年前 |
![]() |
Ross R · RnR:rails_admin、多态关联和无klass 12 年前 |