将rails模型扩展到其他东西以保持集成代码分离

时间:2017-01-09 16:15:36

标签: ruby-on-rails ruby

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

我想将这些与用户模型文件分开以避免混淆,并将与集成相关的所有关联,范围和方法保存在一个地方,而不是观察用户模型变得混乱只有与用户相关的东西启用集成。

这可能,如果可行,我会使用什么机制?

1 个答案:

答案 0 :(得分:2)

您可以使用concerns

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