Tag: dci

什么是DCI以及它如何适应Rails?

最近与同事讨论了在Rails应用程序中设计和编码模型的不同方法,这使我在Rails环境中跨越了DCI 。 但是,即使在查看这个示例应用程序之后,我似乎无法绕过整个概念。 目前,在编写Rails应用程序时,我倾向于或多或少地“ 按书 ”。 所以我想问一些事情 – 什么是DCI,与MVC一起实现的普通旧MVC(以及Rails中的vanilla ActiveRecord)有什么优势? 如何在Rails中实现(或者换句话说, 在所有模块中实现什么 )? 编辑 我想在RoR的上下文中进一步扩展我的问题 – Rails建议的模型和控制器之间的另一个抽象层次是什么? 它在不同规模的应用中有多广泛?

使用多个模块扩展的对象中的方法的Ruby优先级

鉴于以下内容: class User; attr_accessor :roles; end module RegisteredUser def default_context Submission end end module Admin def default_context Review end end current_user = User.new current_user.roles = [“registered_user”, “admin”] current_user.roles.each do |role| role_module = role.gsub(/ /, ‘_’).camelize if module_exists?(role_module) current_user.extend role_module.constantize end end context = self.extend current_user.default_context 有没有办法设置User#default_context的优先级? 也就是说,无论current_user的扩展顺序如何,我是否可以说Admin#default_context始终优先于RegisteredUser#default_context ?