顶级命名空间
在命名空间下定义
实例方法摘要折叠
-
# check_if_transactions_might_be_available! (客户端) ⇒ 对象
如果客户端连接到的集群在任何情况下都不支持事务,则此方法会引发错误。
-
#standard_dependencies ⇒ 对象
rubocop:todo all。
-
#start_sandbox ⇒ Object
准备控制台沙盒模式。
-
# start_sandbox_transaction (客户端) ⇒ 对象
启动一个ACID 事务,该事务应包括沙盒控制台会话中的所有操作。
实例方法详细信息
# check_if_transactions_might_be_available! (客户端) ⇒对象
如果客户端连接到的集群在任何情况下都不支持事务,则此方法会引发错误。 目前,这是独立运行拓扑结构的情况。
请注意,如果此方法未引发,则不能保证事务可用于集群。
16 17 18 19 20 |
# File 'lib/mongoid/railties/console_sandbox.rb', line 16 def check_if_transactions_might_be_available!(客户端) if 客户端.集群.单身? 提高 Mongoid::Errors::TransactionsNotSupported end end |
#standard_dependencies ⇒对象
rubocop:todo all
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'gemfiles/standard.rb', 第2行 def standard_dependencies gem ' rake ' GROUP :development do gem ' fields ', '>= 0.9.35' 平台 :mri do # VSCode 调试器。 if !ENV[' CI '] && !ENV[' Docker '] && RUBY_VERSION < ' 3.0 ' gem 'debase' gem 'ruby-debug-ide' end end # Evergreen 配置生成 gem ' erubi ' gem ' tilt ' gem ' solargraph ', 平台: :mri end GROUP :development, :test do gem ' rspec ', ' ~> 3.12 ' gem 'rubocop', ' ~> 1.45.1 ' gem ' rubocop-performance ', ' ~> 1.16.0 ' gem 'rubocop-rake', ' ~> 0.6.0 ' gem ' rubocop-rspec ', ' ~> 2.18.1 ' 平台 :mri do gem 'byebug' end 平台 :jRuby do gem ' ruby-debug ' end end GROUP :test do gem 'timecop' gem ' rspec-retry ' gem ' benchmark-ips ' gem ' fuubar ' gem ' rfc ' gem ' childprocess ' 平台 :mri do gem ' timeout-interrupt ' end end if ENV['FLE'] == ' helper ' gem ' libmongocrypt-helper ', ' ~> 1.14.0 ' end end |
#start_sandbox ⇒ Object
准备控制台沙盒模式。 当用户使用 '–sandbox' 标志启动 Rails 控制台时,应调用此方法。
36 37 38 39 40 41 |
# File 'lib/mongoid/railties/console_sandbox.rb', line 36 def start_sandbox Mongoid.persistence_context.客户端.点击 do |客户端| check_if_transactions_might_be_available!(客户端) start_sandbox_transaction(客户端) end end |
# start_sandbox_transaction (客户端) ⇒对象
启动一个ACID 事务,该事务应包括沙盒控制台会话中的所有操作。 此ACID 事务不应提交。 当用户结束控制台会话时,客户端将断开连接,ACID 事务将因此自动中止。
28 29 30 31 32 |
# File 'lib/mongoid/railties/console_sandbox.rb', line 28 def start_sandbox_transaction(客户端) 会话 = 客户端.start_session ::Mongoid::线程化.set_session(会话, 客户端: 客户端) 会话.start_transaction end |