术语业务逻辑是否可用于描述:
帐户角色(管理员,最终用户,未注册用户,审核人)控制最终用户可以使用哪些数据?
如果没有,有人可以提供一个术语来描述上述情况,并正确地指出我的业务逻辑意味着什么?它与业务规则有何不同?例子?您是否将业务逻辑层放在Rails / RoR中的Controller中?
答案 0 :(得分:4)
您所谈论的是基于角色的访问控制,它是一种业务逻辑。
业务逻辑将是在进行模型调用时执行的操作。业务逻辑在模型中,而不是控制器。
答案 1 :(得分:1)
基本思想是让控制器尽可能薄。大多数情况下,这意味着控制器接受来自网络的数据,并设置视图中所需的变量,并选择视图。
确定角色,管理员等的过程是询问模型的问题......可能是用户或角色等等。确定如何确定的逻辑在模型中。控制器与此信息协调以选择视图或重定向(如果不允许等)
有时我发现自己在控制器中,进行复杂的查询以获得一组特定的记录。这是一种代码气味,我需要采取该查询并在某个模型中创建范围或方法。
如果您发现自己在模型上链接了很多调用,那么可能是时候将其移动到模型中了。如果您发现自己开辟了大量记录,做出决策并更新记录,那么现在可能是时候进入模型了。
如果需要决定向用户显示哪个视图(或是否显示它!),控制器就可以了。
答案 2 :(得分:0)
业务逻辑是应用程序的一个层,其中编写了应用程序的所有控制语句。 例如,您可以在线销售门票的简单应用。现在,当您开发应用程序时,您有一些逻辑可以实现销售门票,如预订日期不应该是假期。因此,您不会出售假期门票的规则只不过是商业逻辑。 有关详细信息,请访问此站 http://en.wikipedia.org/wiki/Business_logic
答案 3 :(得分:0)
例如,如果您有一个人们购买门票的网站,您可能会有一个业务流程,上面写着“用户只能买一张门票,直到活动当天,之后他最多可以购买5张,如果票仍然可用“。所以你必须在Ruby中编写它 - 它是实现业务规则的Ruby代码。
相反,在同一系统中,您可能拥有将票证拆分为PDF的代码。我不会考虑“业务逻辑”,因为它不是业务工作流规则...是的,以PDF格式打印票证具有商业价值,但它与业务流程如何工作(或应该工作)的工作流程无关它更好地为客户服务。
关于只购买一张票的规则在哪里?这是这项特定业务的政策,一项商业规则。
正如@ Vinnyq12指出的那样,你的例子更像是一个访问控制描述......你可以说它可能是一种业务逻辑,是的。