Ruby on rails 将rails模型扩展到其他地方,以保持集成代码分离

Ruby on rails 将rails模型扩展到其他地方,以保持集成代码分离,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在将一个rails应用程序(目前为rails 3,移动到5)与另一个应用程序集成。rails应用程序中的用户模型将具有与集成、范围和一系列方法相关的关联 我希望将这些从用户模型文件中分离出来,以避免将其弄乱,并将与集成相关的所有关联、范围和方法保留在一个地方,而不是看着用户模型被仅与启用集成的用户相关的东西弄乱 这可能吗?如果可能,我将使用什么机制?您可以使用: 模块附加逻辑 扩展ActiveSupport::关注点 包括做 作用域:禁用,->{where(disabled:true)} 属

我正在将一个rails应用程序(目前为rails 3,移动到5)与另一个应用程序集成。rails应用程序中的用户模型将具有与集成、范围和一系列方法相关的关联

我希望将这些从用户模型文件中分离出来,以避免将其弄乱,并将与集成相关的所有关联、范围和方法保留在一个地方,而不是看着用户模型被仅与启用集成的用户相关的东西弄乱

这可能吗?如果可能,我将使用什么机制?

您可以使用:

模块附加逻辑
扩展ActiveSupport::关注点
包括做
作用域:禁用,->{where(disabled:true)}
属于:用户
#等等。。
结束
#其他方法
结束
类YourModel
看起来很理想。是否可以将关联放在模块中?(用户和其他模型之间的关联)
module AdditionalLogic
  extend ActiveSupport::Concern

  included do
    scope :disabled, -> { where(disabled: true) }
    belongs_to :user
    # etc..
  end
  # other methods
end

class YourModel < ActiveRecord::Base
  include AdditionalLogic
end