[英]How to implement business rules in Rails?
我有一组需要执行的业务规则,例如:
现在,所有这些基本上都是:“如果X为假,则为Y消息”。
所以,我做了这个方法:
def evaluate_rules rules
rules.each_pair do |state,message|
if not (state == true)
return false,message
end
end
true
end
意思是这样的:
evaluate_rules {
(1==1) => "good", #rule will pass
(1==2) => "bad" #rule will fail
}
但是,我得到了错误syntax error, unexpected tASSOC (SyntaxError)
(1==1)
和(1==2)
哈希键syntax error, unexpected tASSOC (SyntaxError)
。
如何将true / false值放入哈希键?
另外,我不禁要以为有人可能已经解决了这个“规则”问题,有什么线索吗?
更新
固定。 有时候露比让我感到沮丧。 调用应如下所示:
evaluate_rules Hash.new({
(1==1) => "good", #rule will pass
(1==2) => "bad" #rule will fail
})
看起来有点难看但是可以用
有多种方法可以完成此操作,但是最好的方法是使用内置的Rails验证器。 这些设置可以完成您所描述的内容。 在每个模型中,您可以创建验证,然后在验证失败时将消息添加到错误数组。 有许多内置的验证,并且可以构建完全自定义的验证。 这是我要针对上面列出的两个用例采取的方法。
此处的一些示例: http : //omgbloglol.com/post/392895742/improved-validations-in-rails-3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.