Как добавить метод класса в Mongoid :: Criteria? - PullRequest
0 голосов
/ 02 июля 2019

Я хочу добавить новый метод класса в Mongoid :: Criteria, все модели могут использовать этот метод, например:

class User
  include Mongoid::Document
  ......
end

, затем я добавляю приведенный ниже код для инициализации rails

class Mongoid::Criteria
  def use_master
    read(mode: :primary_preferred)
  end
end

но это не работает:

pry(main)> User.use_master
NoMethodError: undefined method `use_master' for User:Class

Как добавить метод "use_master" в модель?Любая помощь в продвинутом!

Ответы [ 2 ]

0 голосов
/ 03 июля 2019

Я нашел хорошее решение:

module Mongoid
  module Findable
    def use_master
      read(mode: :primary_preferred)
    end
  end
end
0 голосов
/ 02 июля 2019

Чтение предпочтений может быть изменено через контекст постоянства:

User.with(read: {mode: :primary_preferred}) do
  # ...
end

Это объясняется более подробно в руководстве Mongoid: https://docs.mongodb.com/mongoid/master/tutorials/mongoid-persistence/#runtime-persistence-options

...