如何更改与数据库的连接作为可标记的

How to change connection to the database on acts as taggable on

我使用了 rails 和 gem(作为可标记的)。 我想更改 acts as taggable on 的数据库设置。 所以,我设置如下

-database.yml

default: &default
    adapter: mysql2
    database: my_db1
    host: localhost
    username: root
    password: pass

development:
    <<: *default

my_db2:
    <<: *default
    database: my_db2

-user_model.rb

class User < ActiveRecord::Base
    acts_as_taggable
    establish_connection :my_db2
end

然后,执行如下

User.find(1)
//this line result is connection to my_db2


User.find(1).tag_list
//this line result is connection to my_db1
//i want to connect to my_db2 in this code(by acts as taggable on)

我不知道如何解决这个问题。

谢谢。

好的,所以您需要覆盖标签 class,尝试在您的 config/initializers 文件夹中创建一个名为 tags.rb 的文件,然后添加这个

module ActsAsTaggableOn
  class Tag
    establish_connection :my_db2
  end
end

重新启动服务器,然后它应该可以工作了。

我还必须将标记 class 添加到 Mohammed 的回答中。

module ActsAsTaggableOn
  class Tag
    establish_connection :my_db2
  end
  class Tagging
    establish_connection :my_db2
  end
end