[英]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.