Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 实施奖金制度_Ruby - Fatal编程技术网

Ruby 实施奖金制度

Ruby 实施奖金制度,ruby,Ruby,我需要做的是类似奖金制度的事情。假设我有一个用户和一些帖子。当用户达到一定数量的职位(即100,300,550等),我想给他新的排名和“金钱”奖金。但是如果我在新的帖子保存中检查它,我怎么能不两次或两次以上(即,如果帖子>n{give bonus;})。我如何使这种情况只发生一次? 我曾想过在DB中设置一个单独的列,比如bonus\u gived,但如何将其用于不同的级别?我不知道为什么,但我猜这个问题的解决办法 注:我使用ruby作为我的语言。正如你所说: 在新邮件保存时检查它 只需使用==而

我需要做的是类似奖金制度的事情。假设我有一个用户和一些帖子。当用户达到一定数量的职位(即100,300,550等),我想给他新的排名和“金钱”奖金。但是如果我在新的帖子保存中检查它,我怎么能不两次或两次以上(即,如果帖子>n{give bonus;})。我如何使这种情况只发生一次? 我曾想过在DB中设置一个单独的列,比如
bonus\u gived
,但如何将其用于不同的级别?我不知道为什么,但我猜这个问题的解决办法

注:我使用ruby作为我的语言。

正如你所说:

在新邮件保存时检查它

只需使用
==
而不是

if posts == n { give bonus; }

我想是你自己回答的。你给用户一个新的等级。你可以检查用户是否需要提升到更高的级别,如果是这样,提升他并给予奖金

例如: Rank1小于100 Rank2大于等于100&<300 Rank3大于等于300&<550 Rank4大于等于500

如果一个用户保存了他的第100个帖子,并且排名1,他应该被提升到排名2,并获得“金钱”奖金


这样,如果您以后决定添加更多级别/不同范围,您将更加灵活。

请注意是否可以删除帖子。人们可以通过发布、删除、发布、删除和获取巨额奖金来利用这一点。很抱歉,这个例子并不完全正确,因为帖子增加了1,但更好的例子是人口增加了一些随机值,因此,我不能使用
=
我认为也可以添加一个
bonus\u given
列,该列在新排名后重置,并在奖金发放后设置。