0

次のような 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内の同じメソッドをオーバーライドします。Userしたがって、:name検証はありません。

どうすれば修正できますか?ありがとう!

4

1 に答える 1

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
于 2016-05-17T17:48:02.377 に答える