【问题标题】:Sequel validations in concerns关注点的后续验证
【发布时间】:2016-05-17 13:13:48
【问题描述】:

我有一个这样的 Sequel 模型:

class User < Sequel::Model
  include Notificatable

  def validate
    super
    validates_presence [:email]
  end
end

# concerns/notificatable.rb
module Notificatable
    extend ActiveSupport::Concern

    included do
      def validate
        super
        validates_presence [:phone]
      end
    end
end

这里我遇到了一个问题:Notificatable validate 方法覆盖了 User 模型中的相同方法。所以没有:name 验证。

我该如何解决?谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby sequel sequel-gem


    【解决方案1】:

    为什么要使用关注点?简单的 ruby​​ 模块包含可以满足您的需求:

    class User < Sequel::Model
      include Notificatable
    
      def validate
        super
        validates_presence [:email]
      end
    end
    
    # concerns/notificatable.rb
    module Notificatable
      def validate
        super
        validates_presence [:phone]
      end
    end
    

    【讨论】:

    • 因为我还需要添加一些东西,比如 Sequel 插件和关系。
    • 然后让 Notificatable 成为 Sequel 插件,而不是关注。
    • 好的,我会尝试找到一些关于创建 Sequle 插件的信息。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多