0

我有一个电子邮件系统,我希望用户可以通过复选框决定在发生确定事件时要接收什么消息,例如

field :when_receive_order, :type => Boolean, :default => "true"
field :when_accept_order, :type => Boolean, :default => "true"
field :when_cancel_order, :type => Boolean, :default => "true"
field :when_reject_order, :type => Boolean, :default => "true"
.
.
.
more...

我想知道在这些情况下是否是好的Boolean使用价值或使用state_machine gem 。

在此链接http://railstips.org/blog/archives/2012/10/10/booleans-are-baaaaaaaaaad/中,有人认为Boolean价值观不好。所以我提出这个问题。

注意:我的数据库是 mongodb 和我的 odm es mongoid

4

2 回答 2

2

如果这些布尔值中只有一个始终为真,则可以使用 state_machine。否则,你不能。

在您的情况下,我认为有可能不止一个值是正确的。如果用户想在订单被接受和订单被取消时都收到邮件怎么办?所以你不能使用 state_machine。

于 2012-10-18T12:51:41.487 回答
0

你是对的,你的实体的这种配置很容易导致错误......你应该依赖这个gem或者查看它的源代码并自己实现它......

于 2012-10-18T12:25:55.123 回答