gpt4 book ai didi

ruby-on-rails - 如何在使用 Rails 运行的 Sequel 中获取当前数据库对象?

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:59 24 4
gpt4 key购买 nike

我需要在 Rails 应用程序中从 Sequel 获取当前数据库对象。由于各种原因我无法定义它,就像“Transactions in Ruby Sequel module: how to get DB object?”中建议的那样。我的数据库使用 database.yml 中定义的 JDBC。

我可以得到 Database.current,但似乎我不能对它做任何操作,比如添加一个记录器,就像我可以对另一个应用程序中为 Sequel 定义的 DB 对象做的那样:

lger = Logger.new(STDOUT)
DB.sql_log_level = :debug
DB.loggers << lger

Database.currentDatabase.current() 上执行此操作会导致“没有此类方法”异常,因此我需要获取 Sequel 使用的实际 DB 对象。

最佳答案

我花了一段时间才记住如何做到这一点,而且,我不完全肯定它会与 Rails 一起工作,但是......

在 Sequel 中使用模型时,这可能是 Rails 中发生的情况,您可以获取“DB”对象。我有一个名为 acls 的表。我的模型是 Acl。当我加载我的模型时,我可以:

require 'sequel'
require 'logger'

# ... make my connection then load my models ...

# turn on logging...
Acl.db.loggers << Loggers.new(STDOUT)
Acl.first
# => I, [2013-02-18T16:55:13.561148 #94494] INFO -- : (0.010879s) SELECT * FROM `acls` LIMIT 1

而且,这也有效:

Acl.db.sql_log_level = :debug

关于ruby-on-rails - 如何在使用 Rails 运行的 Sequel 中获取当前数据库对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14944256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com