代码之家  ›  专栏  ›  技术社区  ›  jonnii

可维护性和可测试性的活动记录组织

  •  1
  • jonnii  · 技术社区  · 15 年前

    我的一些AR课程开始。。。腰部周围隆起。我开始觉得是时候让他们节食了。可能我最大的担心是一个文件中有太多的代码,我正在考虑将验证、关联和相关方法组分解成模块。还有其他我没有考虑过的选择吗?

    您的想法将不胜感激。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Edwin V.    15 年前

    PaulBarry.com )这使您能够将模型拆分为多个文件。

    通过关注,可以将模型的某些部分放置在子文件夹中。例如,在原始模型中放置以下行:

    class User < ActiveRecord::Base
        concerned_with :validation
    end
    

    然后在“models/user/validation.rb”中创建一个包含验证的文件:

    class User
        validates_presence_of :username
    end
    

    只要将这段代码放入Rails项目中的初始值设定项文件中,就可以使用这个很好的特性!

    class << ActiveRecord::Base
      def concerned_with(*concerns)
        concerns.each do |concern|
          require_dependency "#{name.underscore}/#{concern}"
        end
      end
    end
    
        2
  •  0
  •   Eimantas    15 年前

    将所有内容或最常见的关联行为提取到带有类方法(如“acts_as_fat_model”)的插件中是很正常的。

    一般来说,rails mvc习惯用法之一是“胖模型-瘦控制器”。这是一个好迹象,你的模型(而不是控制器)很胖。