如何在可标记的情况下更改与数据库的连接

时间:2015-05-03 19:47:01

标签: ruby-on-rails activerecord acts-as-taggable-on

我使用过rails和gem(充当taggable)。 我想在数据库设置中将行为更改为可标记。 所以,我设置如下

-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)

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

感谢。

2 个答案:

答案 0 :(得分:4)

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

module ActsAsTaggableOn
  class Tag
    establish_connection :my_db2
  end
end

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

答案 1 :(得分:1)

我还必须将标记类添加到穆罕默德的答案中。

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