如何更改与数据库的连接作为可标记的
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
我使用了 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